C ++:写入现有文件?

时间:2010-11-15 16:31:37

标签: c++

在C ++中,我需要写入现有文件并保留以前的内容。

这就是我所做的:

std::ofstream logging;

logging.open(FILENAME);

logging << "HELLO\n";

logging.close();

然后我的前一个文字被覆盖(不见了)。我做错了什么?

提前致谢。

4 个答案:

答案 0 :(得分:8)

logging.open(FILENAME, std::ios_base::app); 

答案 1 :(得分:3)

您必须以追加模式打开文件:

logging.open(FILENAME, std::ios::app);

答案 2 :(得分:1)

默认情况下,文件的“opening mode”将被覆盖。尝试以附加模式打开文件

open的第二个参数是枚举位标记。您应该检查的两个选项是:

  • app - 在每次写入之前寻找文件结束
  • 吃 - 打开后寻找文件结尾

    logging.open(FILENAME,std :: ios :: app | std :: ate);

答案 3 :(得分:0)

你试试吗? 类似的东西

myFile.open( "file.txt", ios::out | ios::app );