2015-10-14 56 views
0

我必須從一個文件讀取數據,根據從該文件獲得的數據執行一些操作,然後使用操作完成後獲得的新值重寫整個文件。我試過在C++中讀取和重寫相同的文件

fstream file("date.in", ios::in|ios::out) 

但似乎它把新的一組數據放在文件的末尾。也試過

fstream file("date.in", ios::in|ios::out|ios::trunc) 

但我甚至無法讀取第一組數據,因爲它似乎沒有在那裏。

+0

更簡單的解決方案是打開文件進行閱讀,閱讀,關閉它,然後再打開它來寫入和寫入。 – molbdnilo

+0

類似ifstream文件(「date.in」); ... file.close();流文件(「date.in」)的 ; .... ? – Gusti

+0

是的。或者在不同的範圍內使用它們(例如,在不同的功能中),因此您不需要手動關閉任何東西。 – molbdnilo

回答

0

如果要讀取和寫入文件中的相同偏移量,可以使用seekp()seekg()來設置put和get指針。他們的文檔可以在cppreference.com找到。