一.feof 函數簡介
feof
是一個c語言函數,既可用以判斷二進制文件又可用以判斷文本文件。feof(fp)有兩個返回值:如果遇到文件結束,函數feof(fp)
的值為1,否則為0。
EOF
是文件結束標志的文件。在文本文件中,數據是以字符的ASCⅡ
代碼值的形式存放,ASCⅡ
代碼的范圍是0到255,不可能出現-1,因此可以用EOF作為文件結束標志。
當把數據以二進制形式存放到文件中時,就會有-1值的出現,因此不能采用EOF作為二進制文件的結束標志。為解決這一個問題,ASCI C
提供一個feof
函數,用來判斷文件是否結束。
聲明如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h> #include <stdlib.h> /* *描述:檢測文件結束符 * *參數: * [in] stream:文件指針句柄 * *返回值:如果文件結束,則返回非0值,否則返回0,文件結束符只能被 clearerr 清除 */ int feof ( FILE *stream); |
二.feof 函數實戰
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 文件讀寫 feof 函數 //@Time:2021/07/22 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************/ #include <stdio.h> #include <stdlib.h> int main( void ) { FILE *stream; /*open a file for reading*/ stream = fopen ( "DUMMY.FIL" , "r" ); /*read a character from the file*/ fgetc (stream); /*check for EOF*/ if ( feof (stream)) printf ( "We have reached the end of file\n" ); /*close the file*/ fclose (stream); return 0; } |
注意:feof
判斷文件結束是通過讀取函數 fread
/ fscanf
/ fgetc
等返回錯誤來識別的,故而判斷文件是否結束應該是在讀取函數之后進行判斷。
比如,在 while
循環讀取一個文件時,如果是在讀取函數之前進行判斷,則如果文件最后一行是空白行,可能會造成內存錯誤。
到此這篇關于關于C語言 文件讀寫 feof 函數 的文章就介紹到這了,更多相關C語言 文件讀寫 feof 函數 內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/shuopython/p/15392027.html