關於feof 訪問到檔案結尾多輸出資料的問題

2021-10-01 13:08:18 字數 567 閱讀 5708

feof()的原理:

feof()函式,並不是通過讀取到檔案的eof來評判,這個檔案是否為空。

對feof()來說,它的工作原理是,站在游標所在位置,向後看看還有沒有字元。如果有,返回0;如果沒有,返回非0。它並不會讀取相關資訊,只是檢視游標後是否還有內容。

原**:

char name[20]

, ibsn[20]

;while(!

feof

(f))

由於c語言的 feof() 函式返回的是最後一次「讀操作的內容」,在讀到最後乙個資料時,再進行讀取,但此時的檔案指標仍然指向最後乙個資料,因而會再次讀到最後乙個資料。此時需要進行加個判斷如下:

while(!

feof

(f))

strcpy

(tem->name,name)

;strcpy

(tem->ibsn,ibsn)

;increase

(tem);}

}

fgets與feof 判斷檔案結尾

fgets 是讀取檔案中的一行,當讀檔案過程中發生錯誤或者讀到檔案尾時,返回null,所以不能使用fgets null來判斷是否到了檔案尾,需要結合feof null 才能確定是否到了檔案尾 while feof fp fgets temp,100,fp operation temp 這種判斷是否到...

C語言 EOF和feof 判斷檔案結尾的區別

由於字元的ascii碼不可能出現 1,因此eof定義為 1 是合適的 當以文字形式讀取檔案內容,讀入的字元值等於eof時,表示讀入的已不是正常的字元而是檔案結束符 當以二進位制形式讀取檔案內容,資訊都是以數值方式存在的,eof的值可能就是所要處理的二進位制檔案中的資訊,此時需要用 feof 來判斷是...

feof 和EOF的用法 C中檔案結尾的判斷

昨天突然被一位朋友問到了關於檔案結尾的程式問題。在用feof 判斷檔案時,複製會多產生乙個字元。這個問題在大一的時候,老師上課就強調過,但那時只是模糊的記得個大概,記得這個函式如果用的不對就是會出現問題,解決是要先讀一下,然後再判斷,具體的什麼還真實忘了。而且平常經常用的eof,所以這個問題自己並沒...