小白求教这段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个回答

你程序没贴完整?
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执行停在该断点处。)是程序员必须掌握的技能之一。

peterpaner
peterpaner 那个 Student就是自定义结构体啊,那个ofstream out("G://C++//2")这个的确不对,因为我就是这一块不明白怎么写。谢谢
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!