首页 > 编程知识 正文

c语言 feof,c语言中feof是什么意思

时间:2023-05-04 19:46:41 阅读:261535 作者:4750

目录 引言feof()函数

引言

做课设的时候踩到这个坑,跟大家分享一下

feof()函数

看一下下面的代码

#include<stdio.h>int main(){FILE *fp = fopen("try", "w");if (feof(fp) == 1)puts("文件已结束");elseputs("文件未结束");return 0;}

输出:文件未结束
照理说,w参数打开的文件里面应该只有EOF才对啊,为什么会返回0呢?

查阅资料后:

feof函数
检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0(即,文件结束:返回非0值,文件未结束,返回0值)

int feof(FILE *stream);

注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。

原来出错的原因在这里,建议改成如下形式:

#include<stdio.h>int main(){FILE *fp = fopen("try", "w");char temp[50];if (fread(temp, sizeof(temp), 1, fp) != 1)puts("文件已结束");elseputs("文件未结束");return 0;}

输出:文件已结束
直接利用读文件函数的返回值来判断是否到达结尾。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。