[Ubuntu-zh] 回复: feof的问题

Hoxily hoxily在qq.com
星期五 三月 16 09:40:41 UTC 2012


上C语言课时,我的老师李强强调,
feof函数的正确使用方法是先尝试读取数据,然后用feof判断是否结束.
比如如下代码片段:
char c;
c = fgetc(fp);
while(!feof(fp))
{
    printf("%X/n", c); 
    c = fgetc(fp);
} 

参考链接:http://www.cnblogs.com/chenyadong/archive/2012/03/06/2382628.html
------------------
Hoxily:世界是合理的简单的因而是可以理解的。



 
 
 
------------------ 原始邮件 ------------------
发件人: "吴亚杰"<yajie.wu在hotmail.com>;
发送时间: 2012年3月16日(星期五) 下午5:24
收件人: "ubuntu-zh"<ubuntu-zh在lists.ubuntu.com>; 

主题: [Ubuntu-zh] feof的问题

 

在用feof判断文件是否结束的时候总会多出一行:
下面的代码运行的结果总是 最后一行被读取了两次。
whie(!feof(fp)){
fscanf(fp,“%d”,&data);
}
fp指向的文件中存放如下的内容:
1122334455
运行上面的代码,55总是被读取了两次。这是为什么?feof在判断文件结束时返回非零值,不是应该退出while嘛?
 		 	   		  
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20120316/7e541eec/attachment.html>
-- 
ubuntu-zh mailing list
ubuntu-zh在lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: <https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20120316/bf74f0ce/attachment.html>


关于邮件列表 ubuntu-zh 的更多信息