創作不易,多多支持!
再說此函式之前,先來說一下EOF是什么
EOF,為End Of File的縮寫,通常在文本的最后存在此字符表示資料結束,
在C語言中,或更精確地說成C標準函式庫中表示檔案結束符,這種以EOF作為檔案結束標志的檔案,必須是文本檔案,在文本檔案中,資料都是以字符的ASCII代碼值的形式存放,我們知道,ASCII代碼值的范圍是0~255,不可能出現-1,因此可以用EOF作為檔案結束標志
- 一般結尾都有一個隱藏字符”EOF”,當程式讀取它的時候,就會知道檔案已經到達結尾
可以理解為EOF是文本檔案的結束標識,

注意:此時的text.txt檔案內容為空
相信看到這里,我們基本了解了EOF!
feof
頭檔案:stdio.h
它是什么?
是檢測流上的檔案結束符的函式,如果檔案結束,則回傳非0值,否則回傳0
一般檔案操作結束后,需要使用feof來判定是不是到達了檔案末尾(eof)而結束的,
宣告:
int feof(FILE *stream);
引數:
stream -- 這是指向 FILE 物件的指標,該 FILE 物件標識了流,
回傳值:
如果碰到eof而結束回傳非0值,否則回傳0,
操作實體:
- 注意:此時你的專案工程里面必須有一個text.txt的檔案!
#include<stdio.h>
int main()
{
int ch = 0;
FILE* pf = fopen("text.txt", "r");
if (pf == NULL)
{
perror("open file text.txt");
return 0;
}
while ((ch = fgetc(pf)) != EOF)
{
putc(ch,stdout);
}
printf("\n");
if (ferror(pf))
{
printf("讀取檔案:text.txt時發生錯誤\n");
}
else if (feof(pf))
{
printf("已到達檔案結束處end of file\n");
}
fclose(pf);
pf = NULL;
return 0;
}
牢記:在檔案讀取的程序中,不能用feof函式的回傳值直接用來判斷檔案的是否結束,而是應用于當檔案讀取結束的時候,判斷是讀取失敗而結束,還是遇到檔案尾結束!
以上代碼均在vs2022環境下編譯
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/502909.html
標籤:其他
上一篇:Java---Lambda
下一篇:變數
