C语言中如何判断文件读取完毕
时间: 2024-05-03 07:22:57 浏览: 61
在C语言中,可以通过feof()函数和ferror()函数来判断文件是否读取完毕。
1. feof()函数:该函数用于判断文件是否已经到达文件末尾,如果已经到达文件末尾,返回非零值,否则返回0。示例代码如下:
```
FILE *fp;
char ch;
fp = fopen("test.txt", "r");
while (!feof(fp)) {
ch = fgetc(fp);
printf("%c", ch);
}
fclose(fp);
```
2. ferror()函数:该函数用于判断文件读取时是否出错,如果出错,返回非零值,否则返回0。示例代码如下:
```
FILE *fp;
char ch;
fp = fopen("test.txt", "r");
while ((ch = fgetc(fp)) != EOF) {
if (ferror(fp)) {
printf("读取文件出错!\n");
break;
}
printf("%c", ch);
}
fclose(fp);
```
需要注意的是,在使用feof()函数和ferror()函数时,必须在读取文件之后进行判断。因为这两个函数只能判断上一次读取文件的结果,而不能判断下一次读取文件时的结果。
相关问题
c语言从txt文件中读取
可以使用标准库中的文件操作函数来实现从txt文件中读取数据。以下是一个简单的例子:
```c
#include <stdio.h>
int main() {
FILE *fp;
char buffer[255];
fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
while (fgets(buffer, 255, fp)) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
```
在上面的代码中,我们使用了`fopen()`函数打开文件,其中参数`"r"`表示以只读方式打开文件。如果文件打开成功,`fopen()`函数将返回一个指向文件的指针,否则返回`NULL`。我们使用`fgets()`函数读取文件中的每一行数据,并将其输出到控制台。最后,我们使用`fclose()`函数关闭文件。
需要注意的是,`fgets()`函数每次只能读取一行数据,因此我们需要在循环中重复调用它直到文件读取完毕。另外,我们需要指定一个足够大的缓冲区来存储每一行数据,以避免发生缓冲区溢出的情况。
c语言从磁盘文件中读取整数序列
可以使用C语言中的文件操作函数来实现从磁盘文件中读取整数序列。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int main() {
int nums[MAX_SIZE];
int num, i = 0;
FILE *fp;
fp = fopen("input.txt", "r"); // 打开文件
if (fp == NULL) {
printf("无法打开文件!\n");
exit(1);
}
while (fscanf(fp, "%d", &num) != EOF && i < MAX_SIZE) { // 逐个读取整数
nums[i++] = num;
}
fclose(fp); // 关闭文件
// 输出读取到的整数
for (int j = 0; j < i; j++) {
printf("%d ", nums[j]);
}
printf("\n");
return 0;
}
```
在示例代码中,我们使用了fopen函数打开名为input.txt的文件,并用fscanf函数逐个读取文件中的整数,将其存储在数组nums中。在读取完毕后,我们使用fclose函数关闭文件,最后输出读取到的整数序列。
阅读全文