Вопрос по c++, file – Добавление новой строки в файл (файл журнала) в C ++

27

У меня есть функция ведения журналов, и здесь у меня есть файлы журналов. Теперь каждый раз, когда я запускаю программу, я хочу, чтобы ранее записанный файл не удалялся и к нему добавлялись текущие данные (все, что есть в файле журнала)

Просто чтобы прояснить, например: у меня есть файл журнала logging_20120409.log, который хранит метку времени на ежедневной основе. Предположим, что я запускаю свой проект, он записывает в него текущую метку времени. Теперь, если я перезапущу его, будет заменена предыдущая временная метка. Я не хочу эту функциональность. Мне нужна предыдущая отметка времени вместе с отметкой текущего времени.

Пожалуйста помог

Вам нужно поделиться своим кодом относительно того, где файл журнала открыт и где он создан. Vijay
открыть файл вappend mode Rohit Vipin Mathews

Ваш Ответ

3   ответа
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

и так далее

3

Используйте что-то вроде:

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

Параметр ios: app позволяет добавить вывод в конец файла вместо удаления его содержимого.

1

Возможно, вам нужно открыть файл с опцией добавления. так

FILE * pFile;
pFile = fopen ("myfile.txt","a");

или это

fstream filestr;
filestr.open ("test.txt", fstream::app)
как, пожалуйста, предложи .. gandhigcpp
Не уверен, что еще я могу предложить. как вы открываете файл в настоящее время? WeaselFox
В случае, если у меня есть что-то вроде: - file.open (logfileName.c_str ()), и файл является объектом ofstream. gandhigcpp
чем использовать опцию fstream :: app.file.open(logfileName.c_str(),fstream::app); WeaselFox
введите новую строку в конце того, что вы печатаете ... давай, парень WeaselFox

Похожие вопросы