gpt4 book ai didi

c++ - 用c++写入文本文件的开头

转载 作者:行者123 更新时间:2023-11-28 03:12:40 38 4
gpt4 key购买 nike

我一直在寻找一种简单的方法来将内容写入现有文本文件的第一行。我试过像这样使用 ofstream:

ofstream textFileWriter("Data/...txt");
if (textFileWriter.is_open())
{
textFileWriter << "HEADER: stuffstuff";
}

但它会删除该文件中曾经存在的所有内容,即使 ofstream 不是用 std::ofstream::trunc 构造的。我不能使用 std::ofstream::app,因为写入第一行很重要。

将整个文本文件复制到一个已经有该行的 vector 中,然后将其写回将是我最后的选择,但我真的很想避免这种情况,因为文本文件非常大。

最佳答案

您不能简单地“追加”到文件的开头。

常见的解决方案是打开一个新的(临时)文件,写入新的文件头,将原始文件的其余部分写入临时文件,然后“重命名”(使用 OS 系统调用)临时文件作为原始文件。

或者如您在问题中所说,将原始文件读入内存缓冲区(例如 vector )并在该缓冲区中进行修改,然后将缓冲区写入文件。

关于c++ - 用c++写入文本文件的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17944653/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com