文件结束符eof的正确使用
来源:互联网 发布:资源管理器 知乎 编辑:程序博客网 时间:2024/04/30 11:51
问题:
来自:http://topic.csdn.net/u/20100103/00/99f1111e-aebc-496d-bcb2-889bbe82f091.html
如下:
原因:
刚好读到文件尾的时候,并不会设置文件结束的标志位,只有再读取一个字节(由于到了文件尾了,所以,读取会失败)时,才会设置文件结束标志位。
因此,上面的程序,读取到文件结尾,所有的内容已经输出,然后再判断,此时文件结束标志并没有置位。然后再读取一个字符的时候,就进行了错误的读取,出错了,才会置位(eof()判断的是个出错的情况啊),读取也失败了,所以x里面的内容仍然是上一次读取的内容:1。
再考虑这样的情形,使用read函数每次读固定的数据大小的数据,如果最后读取的字节不够了的话,那么在最后这次读取时,文件结束标志就会置位,因为“发生了读取失败”的情况,所以要设置标志以表示这次的“错误”。
因此,对于read函数的使用,一般判读其返回值是不是0后者是不是等于要读取字节数,来判断是否到达文件结尾。参考代码如下:
另外,有位仁兄对c语言的文件结束的判断做了相同的解释:http://blog.csdn.net/pang123hui/archive/2010/02/21/5315180.aspx
- 文件结束符eof的正确使用
- 文件结束符EOF
- 文件结束符EOF
- 文件结束符EOF
- 文件结束符EOF
- 文件结束符EOF
- EOF文件结束符
- 关于文件结束符EOF
- 关于文件结束符EOF
- 关于EOF(文件结束符)问题的体会
- 关于EOF(文件结束符)问题的体会
- Linux C下的EOF文件结束符
- 关于EOF(文件结束符)问题的体会
- 关于EOF(文件结束符)问题的体会
- 换行符 和 文件结束符EOF
- 结束符 (EOF)
- EOF结束符
- c语言中getchar函数的用法,涉及EOF文件结束符的问题
- 用nohup命令让Linux下程序永远在后台执行
- Factovisors-ACM
- struts ActionForm 空字段问题
- cookie的相关
- 组织人员数据管理系统的思路
- 文件结束符eof的正确使用
- 用十只耗子试出1000瓶中的一瓶毒酒
- C# ReferenceEquals,equals,==区别
- 多态(Polymorphism)
- iPhone Apple Push Notification Service (APNS)
- 敏捷中国2010会议总结
- How to enforce Checkstyle in SVN commits : Simple Guide
- AS3多态中的向上转换
- 如何做人,如何处世。