2016-01-18 100 views
-3

是否有一種方法可以從文件中讀入一行直到行結束,然後轉到另一個函數執行某些操作,然後再回來從同一文件讀入,但從上次停止的位置(而不是從文件的開始)?如何讓文件保持打開並繼續上次離開的位置? C++

如果是,請提供摘錄。代碼對我來說比語言更有意義。由於

+5

'的std :: ifstream'已經保持它的閱讀指針狀態,除非你調用'close()方法',所以究竟是你的問題? –

+0

只是不要關閉文件。你可以這樣做的一種方法是在main中創建文件對象(假設'std :: ifstream',因爲它被標記爲C++),然後通過引用將它傳遞給所有需要從文件中讀取的函數。 – NathanOliver

+4

*「代碼對我來說比語言更有意義。」* - 那麼你能否提供一些解釋你的意思? – Galik

回答

0

當打開一個文件使用std::fstream::open()寫作,你有選項來設置文件openmode作爲後的第二個參數...

std::fstream file; 
file.open("myfile.txt", ios_base::openmode::ate); 

openmode::ate是用來開的標誌文件的輸入光標位於eof

http://www.cplusplus.com/reference/ios/ios_base/openmode/ http://www.cplusplus.com/reference/fstream/fstream/open/ http://www.cplusplus.com/reference/fstream/fstream/

+0

由於這裏有新的法律條款,我選擇不提供完整的'haz teh codez'答案。如果OP使用我在這裏提供的信息無法解決他的問題,那麼我不確定如何進一步幫助他。不管怎樣,除了'ios_base'上缺少'std ::',爲什麼不能編譯?我很感興趣,聽到原因.... –

+0

劃痕,我現在看到它。 –

相關問題