| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1063 人关注过本帖
标题:【stack】为什么读取文件时候最后一个字符总是会读两遍?
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
有的文件沒有FEOF字符,不要靠檢查字符内容的辦法來做,但無論如何,函數都會適當處理feof()的返回,即不要管它是怎麽知道文件結束的(這也是不需要知道太多内部細節的佐證之一)。爲了及時檢測到文件結束(在沒把握別人提供的文件在末尾是否有空行時),最好的辦法是逐個字符讀getchar(),馬上檢查,確實讀入後愛怎麽處理就怎麽處理,使用太多綜合函數要做多方面的測試才行。

編譯器要求程序員的源代碼文件最後有一個空行是偷懶的行爲,這個特性其實在業界早有微詞,不過一向如此罷了(很多語言的編譯器實際上沒那麽“低能”,人家能處理沒空行的情況)。

授人以渔,不授人以鱼。
2014-01-12 17:57
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
在处理二进制文件的时候,就一再被警告不要使用eof来检验文件尾。

还真不知道这里面还有这么多讲究。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2014-01-12 18:05
快速回复:【stack】为什么读取文件时候最后一个字符总是会读两遍?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017409 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved