C++ 在文本文件中预先存在的字符串前面添加单词

C++ 在文本文件中预先存在的字符串前面添加单词,c++,file,C++,File,如何将单词添加到文本文件中预先存在的字符串中。我在一个实例中使用它,该实例要求我“标记”此文件中的某一行文本,我希望执行以下操作: DELETED: data, string, text that is no longer relevant. 这个问题不是我如何追加一个现有文件,而是文件里面的一个特定的行。文件只是C++中的字节流。你不能只在中间添加一些东西,你必须把所有内容移到插入的地方,有效地重写整个文件。 第一个最常用的选项是复制文件。在副本中,将删除的标记添加到所需的任何位置。完成后,

如何将单词添加到文本文件中预先存在的字符串中。我在一个实例中使用它,该实例要求我“标记”此文件中的某一行文本,我希望执行以下操作:

DELETED: data, string, text that is no longer relevant.

这个问题不是我如何追加一个现有文件,而是文件里面的一个特定的行。

文件只是C++中的字节流。你不能只在中间添加一些东西,你必须把所有内容移到插入的地方,有效地重写整个文件。

第一个最常用的选项是复制文件。在副本中,将删除的标记添加到所需的任何位置。完成后,您可以将副本重命名为旧名称,并替换它。这有点浪费,因为您可能刚刚从副本中删除了该行

第二个选项是用注释标记覆盖行。我在非常大的文本文件中看到过这种情况。您想用读/写
fstream
打开文件,而不是
ifstream
ofstream
。在读取每行之前,保存流位置。使用
tellg
。然后读一行。如果它是您要查找的行,请使用
seekp
设置输出位置,然后写“#”,或任何注释标记,直到行尾。不要覆盖上一个换行符或结束换行符

那么你的文件看起来像

data, string, text
##################
data, string, text
我认为单字符注释标记更好,除非你能保证每一行都有足够的空间覆盖前面的DELETED:

可以使用空格代替注释。任何与读取此文件的程序一起工作的内容