fstream:无法在文件中间写入

fstream: cannot write in the middle of a file

我无法在文件中间写入文本。 我可以正确找到添加文本的位置,并且可以使用 tellg()/tellp() 进行检查。但是,在 seekp() 之后,我添加了新文本:

myfstream << "new text" << endl;

这将附加到文件末尾。

我这样做有什么问题吗?

抱歉,无法使用 fstream 在文件中间写入。 您必须将孔文件复制到您的程序中并编辑您的文本并将其写回文件中。

否则你可以用 std::ostream::seekp()

覆盖该行

据报道here,因为我在追加模式下打开文件,所以每个写操作都会追加,即使在 seekp() 之后也是如此。

解决方法是打开ios::in中的文件 | ios::out模式。