fgets与feof 判断文件结尾总结

您所在的位置:网站首页 java判断是否读到文件末尾了 fgets与feof 判断文件结尾总结

fgets与feof 判断文件结尾总结

2024-07-17 05:01| 来源: 网络整理| 查看: 265

      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); }

 转自:https://blog.csdn.net/wxliu1989/article/details/31403949



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3