peterpaner
peterpaner
采纳率0%
2016-06-05 11:22 阅读 1.2k

小白求教这段C++代码有什么问题。关于将数据从txt中读出又在新的txt中写入新的数据的问题

这是我们老师布置的作业,指明要用自定义结构体数组做,已经做了一下午了,是在走投无路了,求各位大神指点。
题目要求如下
从文本文件student.txt读入存放于该文件中的学生数据(学号、姓名、总分),建立成绩排行榜(学号、姓名、总分、名次)(用结构数组或向量表示之),按总分从高到低排序,名次字段的值在排序后写入;
代码如下:
#include

#include

#include

using namespace std;

struct Studentrank
{
string num;
string name;
int score;
int rank;
};
int main()
{
int i=0;
Studentrank temp;
int student=0;
Student st[4];
ifstream in("G://C++//1.txt");
if(!in)

{

cerr << "open error!" << endl;

exit(1);

}

while(!in.eof())

{

in>>st[i].num>>st[i].score>>st[i].rank;

i++;

student++;

}
for(int j=0;j {
for(int a=0;a if (st[j].score>st[j+1].score)
{
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}

}
ofstream out("G://C++//2");
for(int c=0;c<4;c++
{
st[c].rank=c+1
}
out<<st[c].rank;
return 0;
}
特别是写人数据到TXT那一部分,以前没有接触过,看网上的资料也不是太懂。拜托各位

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • qq423399099 小灸舞 2016-06-05 11:55

    你程序没贴完整?
    1.Student st[4];的Student是啥
    2.for(int a=0;a<j-a;a++)你这个内层的循环是不是有点问题?
    3.ofstream out("G://C++//2");也不对吧
    4.最后的for循环也少括号分号啥的
    PS:建议你单步调试,多加一些打印信息也可以,一步步看你的代码是不是正确。
    单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

    点赞 评论 复制链接分享

相关推荐