2011年1月5日 星期三

【轉載】C 及 C++ 常犯錯誤 - EOF 測試的錯誤用法

摘要
大家常用到的一些C/C++ 讀取檔案程式碼,大多的長相如下:
while ( !infile.eof() )
{
  // 讀檔 ...
  // 資料處理 ...
}

然而,這樣寫可能會造成錯誤!因為C/C++ 的feof() 或是eof()的運作方式,是當上一個檔案讀取到結尾時,才回傳true,並非該次讀取到EOF才回傳true。也就是說,此一方法可能會造成當次讀取到EOF時,直接通過while迴圈,造成程式錯誤!

詳細解說請至
〔教學〕C 及 C++ 常犯錯誤 - EOF 測試的錯誤用法

1 則留言:

  1. [...] function gets a segment fault. If you want to know the detail of eof() and feof() functions, go to here, please. Categories: 程式設計 LikeBe the first to like this post. 迴響 (0) 引用 [...]

    回覆刪除