簡體   English   中英

文件讀取:二進制文件的feof()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM