溫馨提示×

c語言讀取文件時怎么判斷結(jié)束

小億
216
2023-09-05 14:46:36
欄目: 編程語言

在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é)束。

0