OFstream多次执行时会覆盖文件内容

时间:2011-10-09 06:16:20

标签: c++ file

假设我声明了一个文件ofstream myFile。现在我只想创建一次这个文件,当我第二次执行这行时,我不想覆盖该文件并创建一个新文件?

3 个答案:

答案 0 :(得分:1)

如果您有单文件单功能设置(例如日志),您可以考虑使用静态变量。

例如:

static ofstream* mylogger::outfile = new  ofstream ("log.log");

从主要功能来看,你应该推动清理功能

atexit (mylogger::closePointers);

答案 1 :(得分:1)

ofstream myfile("filename",ios::app);

但这将继续附加到文件。如果文件不存在,则在开始时创建它。

答案 2 :(得分:0)

ofstream myFile;

它根本不会创建文件。您没有将文件名传递给构造函数。如果您传递它,它将创建该文件,如果该文件已不存在。这也意味着,如果您不想第二次覆盖该文件,则改为传递一个不同的参数。