在c ++中的文件(日志文件)中添加新行

gan*_*cpp 28 c++ file append initwithcontentsoffile

我有一个日志功能,在这里我有日志文件.现在,每次运行程序时,我都希望以前写入的文件不会被删除,并且应该附加当前数据(日志文件中有什么)

只是为了说清楚例如:我有一个日志文件logging_20120409.log,它每天保存时间戳.假设我运行我的项目,它会将当前时间戳写入其中.现在,如果我重新运行它,之前的时间戳将被替换.我不想要这个功能.我想要上一个时间戳和当前时间戳.

请帮忙

Jer*_*fin 51

您想以"追加"模式打开文件,因此它不会删除文件的先前内容.您可以通过指定ios_base::app打开文件的时间来执行此操作:

std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);
Run Code Online (Sandbox Code Playgroud)

例如,每次运行时,它都会向文件中再添加一行:

#include <ios>
#include <fstream>

int main(){
    std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);

    log << "line\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

所以,第一次运行它,你得到

line
Run Code Online (Sandbox Code Playgroud)

第二次:

line
line
Run Code Online (Sandbox Code Playgroud)

等等.


izo*_*ica 6

使用类似的东西:

#include <fstream>
#include <iostream>
using namespace std;
int main() {
  ofstream out("try.txt", ios::app);
  out << "Hello, world!\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

ios:app 选项使输出附加到文件的末尾,而不是删除其内容。