【发布时间】:2010-11-15 16:31:36
【问题描述】:
在 C++ 中,我需要写入现有文件并将之前的内容保留在那里。
这就是我所做的:
std::ofstream logging;
logging.open(FILENAME);
logging << "HELLO\n";
logging.close();
但是我之前的文本被覆盖(消失了)。我做错了什么?
提前致谢。
【问题讨论】:
标签: c++
在 C++ 中,我需要写入现有文件并将之前的内容保留在那里。
这就是我所做的:
std::ofstream logging;
logging.open(FILENAME);
logging << "HELLO\n";
logging.close();
但是我之前的文本被覆盖(消失了)。我做错了什么?
提前致谢。
【问题讨论】:
标签: c++
logging.open(FILENAME, std::ios_base::app);
【讨论】:
您必须以附加模式打开文件:
logging.open(FILENAME, std::ios::app);
【讨论】:
默认情况下,文件的“opening mode”会被覆盖。尝试以追加模式打开文件
open的第二个参数是一个枚举位标志。您应该检查的两个选项是:
ate - 打开后查找文件末尾
logging.open(FILENAME, std::ios::app|std::ate);
【讨论】:
你试试? 类似的东西
myFile.open( "file.txt", ios::out | ios::app );
【讨论】: