关于写入文件数据时出现的一点问题
cout<<"请输入要删除的学号:";string str;
cin>>str;
list<student> ivec;
ifstream in;
in.open("stu.txt",ios::in);
while(in)
{
student stu;
in>>stu.num>>stu.name>>stu.score[0]>>stu.score[1]>>stu.score[2];
ivec.push_back(stu);
}
for(list<student>::iterator it=ivec.begin();it!=ivec.end();)
{
if(it->num==str)
it=ivec.erase(it);
else
++it;
}
list<student> ivec;
ofstream out;
out.open("stu.txt",ios::out);
for(list<student>::iterator y=ivec.begin();y!=--ivec.end();++y)
{
out<<y->num<<"\t";
out<<y->name<<"\t";
out<<y->score[0]<<"\t";
out<<y->score[1]<<"\t";
out<<y->score[2]<<"\t";
}
把一个结构体的数据写入文件 为什么迭代器那里要自减一次呢 不然会出现
03042201 ty 89 89 89 03042222 fg 85 81 83
03042256 ty 89 89 89 89 89 89
最后一项错误数据不知道是怎么出来的它3个数跟倒数第二项的数据是一样的 但是它没有前面的两项数据(学号和姓名)
[[it] 本帖最后由 yijing21 于 2008-4-19 09:46 编辑 [/it]]