重置stream,但保留先前的数据
Reset ofstream but preserve previous data
是否有一种方法可以将流程重置回流的开头,而不是在数据上写入?我知道如何将流重置为开始,但随后它写入所有旧数据。我意识到我可以保存初始数据,直到我准备好编写它,但这是很大的,我不确定是否会很好地存储。我想的另一个选项是用我的初始大数据创建一个临时文件,将我的新数据写入实际文件,然后将临时文件复制并删除。我想我只是在寻找比这两个更方便的东西。不幸的是,更改我获取数据的方式并不是一个选择。使用此代码:
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, const char * argv[])
{
ofstream out_stream("~/Desktop/test_out.txt");
out_stream <<
"This is some test filen" <<
"I want to reset streamn" <<
"Start working......nown";
out_stream.seekp(0, ios_base::beg);//this sets to beginning but erases old data
out_stream <<
"I hope this workssssssn";
out_stream.close();
return 0;
}
我想要此输出:
I hope this workssssss
This is some test file
I want to reset stream
Start working......now
您似乎要"预先启动"文件。那是不可能的。新文本将覆盖已经存在的内容。
您必须将新文本写入新文件,然后将文本从原始文件写入新文件。
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 有根的二进制搜索树.保留与其父级的链接
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 当我使用 QDomDocument 解析 html 数据时,如何保留 "?
- 即使在超出范围之后,我是否可以保留矢量数据
- 如何多次写入.CSV文件并使用C 保留先前的数据
- memcpy是否可以保留不同类型之间的数据
- 为什么返回的 FILE* 在 popen() 中的命令失败时保留数据
- 重置stream,但保留先前的数据
- std::queue 不保留数据
- 为什么迭代器指向的数据在从列表中删除后保留
- 有没有一种方法可以保留C++中以前递归的数据(具体示例)
- 如何在不复制和保留 std::string 对象的情况下获得 C++ std::string 字符数据的所有权
- 在将数据传递到字符串中时,如何保留文件的格式?
- 我如何构建公共数据,同时保留默认的移动元素和分配
- 读取多个文件,并为每个文件保留一组数据
- 当使用SIMD内部函数时,如何在寄存器中保留与输入相关的热数据