加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 文件读取:二进制文件的feof()

发布时间:2020-12-16 10:52:26 所属栏目:百科 来源:网络整理
导读:我正在读一个二进制文件.当它到达终点时似乎它被feof()函数终止了.是因为二进制文件没有EOF字符?如果是这样我怎么解决它. 目前我的代码正在使用while循环 while (!feof(f)) 当它到达位置5526900的文件末尾时,它不会停止.它只是不断尝试阅读,我陷入了困境.
我正在读一个二进制文件.当它到达终点时似乎它被feof()函数终止了.是因为二进制文件没有EOF字符?如果是这样我怎么解决它.

目前我的代码正在使用while循环

while (!feof(f))

当它到达位置5526900的文件末尾时,它不会停止.它只是不断尝试阅读,我陷入了困境.

任何人都可以告诉我为什么以及如何解决它.

谢谢

解决方法

你不应该使用feof()来循环 – 而是使用fread()的返回值 – 循环直到它返回零.如果您考虑读取空文件,这很容易看出 – feof()在读取操作后返回EOF状态,因此如果用作循环控件,它将始终尝试读取伪造数据.

我不知道为什么这么多人认为feof()(以及C流的eof()成员)可以预测下一次读取操作是否会成功,但相信我,他们不能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读