[爆卦]c語言eof用法是什麼?優點缺點精華區懶人包

為什麼這篇c語言eof用法鄉民發文收入到精華區:因為在c語言eof用法這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Nestarneal (涅斯)看板C_and_CPP標題[問題] C++ eof時間Fri Ju...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C++

問題(Question):

我的檔案中有以下資料:『
a 0
e 3』

CODE為:
while(!fin.eof())
{
fin >> tmp1;
fin >> tmp2;
cout << tmp1 << endl;
}

輸出結果為:
a
e
a 0

我用 /eof 有搜尋到一篇文章,內容大致上是說:
eof在讀取時才會判斷有沒有到檔尾,
所以在讀完e跟3以後還會再繼續一次while,
但是這次進入while遇到fin時,程式就會發現已經到檔尾,
所以就不會有再下一次的while。

如果照上面的說法,那輸入結果應該是:
a
e
e
才對,但卻不是如此。

我最大問題點在於那個0,
在先前讀檔案的時候,0應該是被放入tmp2,
而我輸出只有tmp1,所以不管怎樣都不該出現0。
所以我想會不會是我對於eof的理解有所出入,
上面對於eof的用法還有需要更正的地方呢?

麻煩各位解答一下囉,謝謝。

------補充問題-------
我剛剛把其他跟檔案IO無關的CODE做了一些修改,
結果卻能夠正常顯示結果了...

不過還是想請問我對於eof的觀念哪裡需要更正。
因為無論是之前錯誤的情況,還是現在莫名變成正確的情況,
跟我對於eof的瞭解都還是有出入。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.61.196
※ 編輯: Nestarneal 來自: 114.33.61.196 (06/24 14:31)
tropical72:你說對了,eof 意義看這篇:#1DEjbRVi,下面這份寫得很棒 06/24 14:42
tropical72:http://0rz.tw/u7njy 06/24 14:42
tropical72:補一下,"你說對了"指的是 "對於eof的瞭解都還是有出入" 06/24 14:44
loveme00835:= =" 06/24 14:50
angleevil:若林源三好帥 06/24 15:24
Nestarneal:瞭解囉,謝謝 :) 06/24 17:42

你可能也想看看

搜尋相關網站