对判断读取文件结束的一点心得

之前遇到过这一个问题,用了先读取再判断是否到文件结尾,来判断读取的内容是否有效。但是当时只是大概地了解了一下,并没有很好地去理解。

前两天,应用的时候都没有想起这个处理方式,后来发现文件读取有问题。找了相关资料,再加上看了一个提问(如何判断读取文件结束)中各位高手的见解。终于有了点眉目。

对于其他,上面那些高手说了很多,我也不多说。根据高手们的见解,再结合我自己一情况,读到文件结尾(测试的时候我们自己知道)有两种情况。简单地说,我是按行来读取文件的,文件结尾有两种情况。1) 最后一行没有敲回车;2) 最后一行内容结束敲了一个回车。

现在来分析,第一种情况:读最后一行的时候,读到文件结束,读入内容,并作了文件结束标志。这是读取的内容时有的,eof判断是已经到文件结尾了。第二种情况:读最后一行,这里是遇到回车,读取结束,读入内容,但是,这时候没有标志文件结束,eof判断的时候得到的结果就是文件没有结束,但内容已经读取完了,在下一次读取的时候,没有读到内容,而且标志文件结束。

这种类似的问题还会出现在读取整数等其他情况下。

所以,先读再eof判断,在第一种情况下会使最后一行的数据丢失。实际应该先eof判断,再在读取数据的时候进行判断,可以达到想要的结果。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值