c++关于eof()函数多读一行代码的解决方法

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--就行了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值