理解feof與EOF


feof(feof msdn)

feof用於判斷文件結尾。頭文件<cstdio>。使用方法是feof(fp),fp為指向需要判斷的文件的指針。如果不到文件結尾,返回0值;如果是文件結尾,返回非0.

使用feof判斷文件結尾一定要非常注意以下一點:

假設文件包含10字節,並且你讀取了十字節,調用feof函數,函數返回值均為0,這是因為盡管文件指針這時已經指向文件尾了,但是你沒有試圖越過文件尾讀取數據,只有當你嘗試了讀取第十一個字節時,調用feof,函數才會返回0.

因此,使用feof常用的邏輯結構是先讀在判斷,如果先判斷在讀取,就會發生異常。

 

EOF(EOF c++ reference) 

c++ reference對其的講解是:

“EOF是一個整數類型的宏定義,擴展為負數常量表達式(通常為-1)。

它被頭文件<cstdio>中的好幾個函數作為返回值使用,來表明已經到達文件尾或者示意一些其他的錯誤條件

它也被作為一個值來表示無效的字符。

在C++中,這個宏定義為char_traits<char>::eof().”

 

feof與EOF異同

具體參看 feof與EOF的用法

EOF通常用來判斷文本文件的結尾,因為EOF的值為-1,ASCII都是字符型,不可能出現-1的情況。而在二進制文件中,信息以數值存放,使用EOF就可能會異常。

因此,通常使用feof來判斷二進制文件的結尾。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM