2013-03-28 65 views
0

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

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

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

回答

3

添加fstream::app标志。

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

D'oh!我试过'fstream :: ate'无济于事。谢谢你的提示! – raphnguyen 2013-03-28 01:48:56

1

fstream::out总是覆盖文件中的数据。追加,使用模块fstream::app