[英]file reading: feof() for binary files
我正在讀一個二進制文件。 當它到達終點時 似乎它被feof()函數終止了。 是因為二進制文件沒有EOF字符? 如果是這樣我怎么解決它。
目前我的代碼正在使用while循環
while (!feof(f))
當它到達位置5526900的文件末尾時,它不會停止。 它只是不斷嘗試閱讀,我陷入了困境。
任何人都可以告訴我為什么以及如何解決它。
謝謝
你不應該使用feof()來循環 - 而是使用fread()的返回值 - 循環直到它返回零。 如果您考慮讀取空文件,這很容易看出 - feof()在讀取操作后返回EOF狀態,因此如果用作循環控件,它將始終嘗試讀取偽造數據。
我不知道為什么這么多人認為feof()(以及C ++流的eof()成員)可以預測下一次讀操作是否會成功,但相信我,他們不能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.