我有一个日志功能,在这里我有日志文件。现在,每次运行程序时,我都希望以前写入的文件不会被删除,并且应该附加当前数据(日志文件中有什么)
仅举例说明:我有一个日志文件logging_20120409.log,它每天都会保留时间戳。假设我运行我的项目,它会将当前时间戳写入其中。现在,如果我重新运行它,之前的时间戳将被替换。我不想要这个功能。我想要上一个时间戳和当前时间戳。
请帮忙
答案 0 :(得分:50)
您想要以“追加”模式打开文件,因此它不会删除文件的先前内容。您可以通过在打开文件时指定ios_base::app
来执行此操作:
std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);
例如,每次运行时,它都会向文件添加一行:
#include <ios>
#include <fstream>
int main(){
std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);
log << "line\n";
return 0;
}
所以,第一次运行它时,你会得到
line
第二次:
line
line
等等。
答案 1 :(得分:3)
使用类似:
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ofstream out("try.txt", ios::app);
out << "Hello, world!\n";
return 0;
}
ios:app选项使输出附加到文件末尾而不是删除其内容。
答案 2 :(得分:1)
也许您需要使用append选项打开文件。像这样:
FILE * pFile;
pFile = fopen ("myfile.txt","a");
或者这个:
fstream filestr;
filestr.open ("test.txt", fstream::app)