看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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