正在重写fstream文件

时间:2013-03-28 01:42:37

标签: c++ file-io fstream

我正在开发一个输出文本文件的程序。任何时候我想写入文件,我打开它,seekp()到文件的末尾,写入它,然后关闭它。但是,似乎每次执行新写入时,它都会替换以前存在于文件中的所有数据。

output.open("output.txt", fstream::out);
output.seekp(0, ios::end);
output << "Record " << key << " does not exist.\r";
output.close();

这是将每个写入追加到文件末尾的正确方法吗?任何可能导致整个文件被重写的想法都将不胜感激。

2 个答案:

答案 0 :(得分:3)

添加fstream::app标记。

output.open("output.txt", fstream::out | fstream::app);

答案 1 :(得分:1)

fstream::out始终覆盖文件中的数据。要追加,请使用模块fstream::app