您的位置:首页 > Web前端

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: