在c++中写入文本文件的开头
Write to the start of a textfile in c++
我正在寻找一种简单的方法,将一些内容写入现有文本文件的第一行。我试着使用这样的流:
ofstream textFileWriter("Data/...txt");
if (textFileWriter.is_open())
{
textFileWriter << "HEADER: stuffstuff";
}
但它会删除该文件中的所有内容,即使ofstream不是用std::ofstream::trunk构建的。我不能使用std::ofstream::app,因为写入第一行很重要。
将整个文本文件复制到一个已经有行的向量中,然后将其写回是我的最后一个选择,但我真的很想避免,因为文本文件相当大。
不能简单地"追加"到文件的开头。
常见的解决方案是打开一个新的(临时)文件,写入新的标头,将原始文件的其余部分写入临时文件,然后将临时文件"重命名"(使用操作系统调用)为原始文件。
或者,正如你在问题中所说,将原始文件读取到内存中的缓冲区(例如向量)中,并在该缓冲区中进行修改,然后将缓冲区写入文件。
相关文章:
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 如何在 的开头<x>和结尾<y>之间更改带有文件输出的字符串的值
- 如何在C++中.txt文件的开头插入字符串
- 帧提取 使用OpenCV的视频文件开头只有几秒钟
- 我想删除 txt 文件中以 %% ( C++) 开头的一些行
- 如何转到 fstream 中文件的开头?
- ifstream 读取以 开头的每个文件
- C++从文件中读取不同类型的数据,直到有一个以数字开头的字符串
- 从文件的开头读取,而不会浪费太多内存
- 写入文件开头,保留文件内容
- 将头文件(.h)放在另一个文件(.h或.cpp)的开头和结尾之间的区别
- c++写入文件当前行的开头
- C++ 将字符串写入文件开头
- C++fread读取文件开头的随机字符
- 文件开头的垃圾字符
- c++从文件开头读取到指定字节
- 'BOM'字符在文件开头或文件末尾的位置是什么?
- 从文本文件开头的行中删除空格
- 如何在C++中的文件开头添加一行
- 有没有一种在文件开头添加一位的快速方法/技巧