[問題] 連續 open 檔案失敗

看板Programming作者 (QQ)時間14年前 (2011/04/09 22:48), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
最近遇到一個問題 連續讀檔的時候 第二個檔案會一直打不開 fstream input; string temp_string; while(true) {[A input.open("input_name", std::ios::in) while(input.peek()!=EOF) { input >> temp_string; } input.close(); } 遇到的狀況是 只要把 while(input......)註解掉 一切都很正常 可是使用EOF做判斷時 第二個次迴圈就無法開檔 我有檢查過每一次都有關檔的動作 (用input.is_opem()去看) 而且我讀的檔案似乎因為編碼問題 結尾沒有EOF ?? (unix format?) 之前也有遇過 採用的對策是 針對每個input檔案結尾加一個換行符 再存檔就可以了 可是這次卻沒有用 感覺好像是用 fstream 一次讀一個字串會讀到不該讀的東西... 可是也不確定為什麼 想請教諸位高手 thx in advanced -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.152.40

04/10 01:40, , 1F
while(input >> temp_string) 試試看
04/10 01:40, 1F

04/10 02:02, , 2F
close後再接 input.clear() 清 flag.
04/10 02:02, 2F

04/10 09:39, , 3F
謝謝 我試看看
04/10 09:39, 3F

04/10 10:18, , 4F
一樓的方法失敗 ~ 二樓的OK
04/10 10:18, 4F

04/10 10:18, , 5F
可是為什麼要自己清flag呢?
04/10 10:18, 5F

04/12 02:14, , 6F
讀完檔後,EOF 的 flag 還在,所以下次
04/12 02:14, 6F

04/12 02:14, , 7F
再讀的時候,把 EOF 給清掉.
04/12 02:14, 7F

04/14 21:03, , 8F
謝謝你們
04/14 21:03, 8F
文章代碼(AID): #1De7745B (Programming)
文章代碼(AID): #1De7745B (Programming)