2010-11-15 103 views
4

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

这是我做了什么:

std::ofstream logging; 

logging.open(FILENAME); 

logging << "HELLO\n"; 

logging.close(); 

但后来我以前的文本被覆盖(消失)。我做错了什么?

在此先感谢。

回答

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

logging.open(FILENAME,std :: ios :: append | std :: ate);也总是会增加到结束 – Sudantha 2010-11-15 16:34:17

1

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

open的第二个参数是enum位标志。你应该看看这两个选项是:

  • 应用程序 - 寻求到文件末尾每次写入
  • 前吃 - 寻求开放后

    logging.open(文件名,标准的文件结尾: :IOS ::应用程序|的std ::吃);

3

你必须打开追加模式的文件:

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

你试试? 类似的东西

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