1、feof()的使用
feof()
是 C 语言中的一个标准库函数,用于检查文件指针是否已经到达文件末尾(EOF
,End Of File)。当对文件进行读取操作并且到达文件末尾时,feof()
会返回非零值,表示到达了文件结束。
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
int number;
// 使用 fscanf 读取文件
while (fscanf(file, "%d", &number) == 1) {
printf("Read number: %d\n", number);
}
// 检查是否到达文件末尾
if (feof(file)) {
printf("Reached the end of the file.\n");
} else if (ferror(file)) {
perror("Error reading file");
}
fclose(file);
return 0;
}
2、C语言读取文件
C语言中,读取文件并判断文件是否结束是常见的操作。可以使用feof()
,但在读取后才会更新状态,需谨慎使用。可以检查返回值,更加安全,直接依据读取结果判断是否成功。还可以通过fgets()
进行适合逐行读取,使用简单,适合处理文本文件。
1)使用 feof()
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
int number;
while (fscanf(file, "%d", &number) == 1) {
printf("Read number: %d\n", number);
}
if (feof(file)) {
printf("Reached the end of the file.\n");
}
fclose(file);
return 0;
}
2)检查返回值
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
int number;
while (fscanf(file, "%d", &number) == 1) {
printf("Read number: %d\n", number);
}
if (ferror(file)) {
perror("Error reading file");
}
fclose(file);
return 0;
}
3)使用 fgets()
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
char line[256];
while (fgets(line, sizeof(line), file) != NULL) {
printf("Read line: %s", line);
}
if (feof(file)) {
printf("Reached the end of the file.\n");
} else if (ferror(file)) {
perror("Error reading file");
}
fclose(file);
return 0;
}