[問題] C++ eof

看板C_and_CPP (C/C++)作者 (涅斯)時間15年前 (2011/06/24 14:10), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
開發平台(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)

06/24 14:42, , 1F
你說對了,eof 意義看這篇:#1DEjbRVi,下面這份寫得很棒
06/24 14:42, 1F

06/24 14:42, , 2F
06/24 14:42, 2F

06/24 14:44, , 3F
補一下,"你說對了"指的是 "對於eof的瞭解都還是有出入"
06/24 14:44, 3F

06/24 14:50, , 4F
= ="
06/24 14:50, 4F

06/24 15:24, , 5F
若林源三好帥
06/24 15:24, 5F

06/24 17:42, , 6F
瞭解囉,謝謝 :)
06/24 17:42, 6F
文章代碼(AID): #1E12fNkj (C_and_CPP)
文章代碼(AID): #1E12fNkj (C_and_CPP)