Существует множество документов по перенаправлению stdout и stderr в файл вместо консоли.Как вы перенаправите его обратно?Приведенный ниже код показывает мое намерение, но выводит «stdout выводится на консоль» только один раз.
Я предполагаю, что мне нужно захватить буфер вывода консоли, сохранить его где-то, перенаправить stdout в файл, а затем восстановитьконсольный буфер?
#pragma warning(disable:4996)
#include <cstdio>
int main()
{
std::printf("stdout is printed to console\n");
if (std::freopen("redir.txt", "w", stdout)) {
std::printf("stdout is redirected to a file\n"); // this is written to redir.txt
std::fclose(stdout);
std::printf("stdout is printed to console\n");
}
getchar();
return 0;
}