在C語言中,可以使用feof()函數(shù)來判斷文件是否已經(jīng)結(jié)束。
feof()函數(shù)的原型如下:
int feof(FILE *stream);
該函數(shù)接受一個指向文件的指針作為參數(shù),如果文件已經(jīng)結(jié)束,則返回非零值;否則返回0。
以下是一個示例代碼,展示了如何使用feof()函數(shù)來判斷文件是否已經(jīng)結(jié)束:
#include <stdio.h>
int main() {
FILE *file;
char c;
file = fopen("file.txt", "r");
if (file == NULL) {
printf("Failed to open file\n");
return 1;
}
while (!feof(file)) {
c = fgetc(file);
if (c != EOF) {
printf("%c", c);
}
}
fclose(file);
return 0;
}
在上述代碼中,首先打開了一個名為file.txt的文件,然后使用feof()函數(shù)在一個循環(huán)中讀取文件的每一個字符,直到文件結(jié)束。在循環(huán)的每一次迭代中,先使用fgetc()函數(shù)讀取一個字符,然后判斷該字符是否為EOF(文件結(jié)束符),如果不是,則將其打印出來。
需要注意的是,feof()函數(shù)在文件結(jié)束之前不會返回非零值,而是在嘗試讀取文件的下一個字符之后才會返回非零值,所以在循環(huán)中需要先使用fgetc()函數(shù)讀取字符,然后再使用feof()函數(shù)來判斷文件是否已經(jīng)結(jié)束。