2016-09-16 57 views
1

我無法在文件中寫入文本。 我可以正確找到添加文本的地方,我可以用tellg()/tellp()來查看。但是,當一個seekp()後,我添加了新的內容:fstream:無法在文件中間寫入

myfstream << "new text" << endl; 

這是附加到文件的末尾。

我在做什麼錯?

+0

您不能在文件的中間插入,只能覆蓋。文本被追加是很奇怪的,但不可能說明爲什麼會發生這種情況,除非您發佈代碼。 – molbdnilo

+0

@molbdnilo:我不想插入,只是從某個點開始覆蓋。 – Pietro

回答

0

據報道here,因爲我打開追加模式的文件,那麼每一個寫操作將追加,甚至seekp後() 。

解決方案是在ios :: in |中打開文件。 ios :: out模式。

0

對不起,沒有辦法寫在fstream文件的中間。 您必須將孔文件複製到您的程序中並編輯您的文本並將其寫回到文件中。

否則,你可能會覆蓋在符合的std :: ostream的:: seekp()