1、最近在写c++文件读写的时候发现了一个问题,就是eof()函数用作循环结束条件会多读取一行尾部的结束标志(也就是乱码),所以我想了一个方法来解决该问题,再次分享给大家
stu *head,*p1,*p2;//用于创建链表
int s;//累计对象个数
int stu::stu_in()
{
ifstream fp("stu.txt",ios::in);
if(!fp)
return 0;
while(!fp.eof())
{
s++;
p1=new stu;
p1->next==NULL;
p2->next=p1;
p2=p1;
fp>>p2->num>>p2->name>>p2->sex>>p2->zhuanye>>p2->Birthday>>p2->address>>p2->E_score;
}
fp.close();
delete p2;
s--;
}
思路就是用循环结束后,p2指针还指向最后一个结点,这时直接将他释放了,并且将累计数量的s--就行了