Как записать консольный вывод в текстовый файл в cpp?

Я пытаюсь записать консольные данные в отдельный текстовый файл в cpp. Кто-либо помогает мне с примером кода.

5
задан Naveen kumar 17 July 2010 в 08:47
поделиться

4 ответа

Есть разные способы сделать это. Вы можете перенаправить его из командной строки с помощью programname> out.txt . Или вы можете использовать freopen ("out.txt", "w", stdout); в начале вашей программы.

18
ответ дан 18 December 2019 в 08:26
поделиться

Если вы хотите писать из своего процесса, я бы предложил простой метод print

void print(const string str, ostream & output)
{
    output << str;
}

Затем вы можете вызвать

print("Print this", cout);

для консольного вывода, или

ofstream filestream("filename.out");
print("Print this", filestream);

для записи в файл "filename.out". Конечно, больше всего вы выиграете, если print будет методом класса, который выводит всю необходимую вам специфическую информацию об объекте, и таким образом вы сможете легко направлять вывод в различные потоки.

1
ответ дан 18 December 2019 в 08:26
поделиться

bbtrb написал:

void print (const string str, ostream & вывод) { output << str; }

Лучше, чем это, конечно

ostream& output(ostream& out, string str) {out << str; return out;}

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

0
ответ дан 18 December 2019 в 08:26
поделиться

ответ smerrimans должен вам помочь.

Существует также возможность реализовать собственный streambuf и использовать его с std :: cout и std :: cerr для сохранения распечаток в файл вместо вывода на консоль. Я сделал это некоторое время назад, чтобы перенаправить распечатки во вращающиеся журналы с отметками времени.

Вам нужно будет немного прочитать о том, как это работает, и эта книга помогла мне понять это правильно.

Если это не то, что вам нужно, это немного перебор.

0
ответ дан 18 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

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