c++ |文本文件hardtime(行编辑)

C++ | Text files hardtime (line edit)

本文关键字:编辑 hardtime 文本 文件 c++      更新时间:2023-10-16

我的程序目前遇到了麻烦。我只想修改文本文件中的6行,从第76行到第81行,我不知道怎么做。

我想在这些行的末尾添加一些东西(或者如果更容易的话替换它们),并且不修改任何其他行(可能检查修改是否已经发生,但这是额外的)。

我发现自己在谷歌上找不到答案,你能帮帮我吗?

如果您的替换文本与原始文本相同,确切的长度,您可以以读/写方式打开文件并覆盖文本。

传统的方法(自卷对卷磁带以来)一直是将未修改的文本复制到新文件中,然后是修改后的文本,然后是原始文本的其余部分。

建议使用std::getlinestd::string

如果您确实需要性能,您可能需要考虑双缓冲。

编辑1:示例
for (unsigned int i = 0; i < 76; ++i)
{
  std::string text;
  std::getline(original_file, text);
  new_file << text << "n";
}
// Write new text to new file
// Read old text and ignore it.
// Copy remaining text to new file.


虽然可以将文件视为随机访问(意味着可以查找到随机位置),但文本的长度不是固定的。一般来说,文本文件可以被认为包含可变长度的文本记录。对行计数的唯一方法是一直读到找到换行符为止。因此,为了找到第76行,必须计算行尾,直到找到第76行。