fgets与feof 判断文件结尾
2014-06-16 17:57
316 查看
fgets 是读取文件中的一行,当读文件过程中发生错误或者读到文件尾时,返回NULL,所以不能使用fgets==NULL来判断是否到了文件尾,需要结合feof(NULL) 才能确定是否到了文件尾
while(!feof(fp))
{
fgets(temp,100,fp);
Operation(temp);
}
这种判断是否到了文件尾的方式在存在错误的,因为fgets函数是遇到回车‘\r'符返回的,所以在读到最后一行时,它的文件指针并没有指向文件尾,而是指向’\r'处,,feof 依然返回0(文件还没结束 ),所以这时operations还是会执行
应该修改为这种形式
while(1)
{
fgets(temp,100,fp);
if(feof(fp))
{
break;
}
operation(temp);
}
while(!feof(fp))
{
fgets(temp,100,fp);
Operation(temp);
}
这种判断是否到了文件尾的方式在存在错误的,因为fgets函数是遇到回车‘\r'符返回的,所以在读到最后一行时,它的文件指针并没有指向文件尾,而是指向’\r'处,,feof 依然返回0(文件还没结束 ),所以这时operations还是会执行
应该修改为这种形式
while(1)
{
fgets(temp,100,fp);
if(feof(fp))
{
break;
}
operation(temp);
}
相关文章推荐
- C语言-EOF和feof()判断文件结尾的区别
- feof()和EOF的用法—— C中文件结尾的判断
- feof()和EOF的用法—— C语言中文件结尾的判断 (个人感觉写的挺深刻)
- feof()和EOF的用法—— C中文件结尾的判断
- 文件结尾判断feof , EOF
- feof()和EOF的用法—— C中文件结尾的判断
- feof()和EOF的用法—— C中文件结尾的判断
- feof()和EOF的用法—— C中文件结尾的判断
- 从文件读入数据块时用feof(fp)判断文件结尾真的保险吗?
- feof()和EOF的用法—— C中文件结尾的判断
- feof()和EOF的用法—— C中文件结尾的判断
- 关于C语言feof()函数判断文件结尾的问题分析
- feof()和EOF的用法—— C中文件结尾的判断
- feof()和EOF的用法—— C中文件结尾的判断
- feof()和EOF的用法—— C中文件结尾的判断
- feof()和EOF的用法—— C中文件结尾的判断
- feof判断到结尾了 fgets还是获取一行空的 导致多读取一行
- 文件操作函数feof判断是否指向文件的结尾处,结尾即为空字符
- C中判断文件结束的两种方法feof()和EOF
- 关于使用while(!filePCloud.eof())判断文件结尾进行数据输入装换时注意事项