C++ 忽略某些输出的 cout 重定向

C++ ignoring cout redirect for some outputs

我正在使用命令行和重定向符号启动我的程序,就像这样

程序 > out.txt

有没有办法让一些 cout 调用可以忽略 > 运算符并仍然显示在控制台中?

我想要的是在控制台中显示一个控制台菜单,但其余部分将被重定向到文件。

谢谢。

没有,没有。

> 将整个 stdout 流重定向到一个文件,而不是特定的写入该流。如果要写入多个位置,则要使用多个流。例如,您可以使用 stderr:

cout << "redirected" << endl;
cerr << "not redirected" << endl;

您可以重新格式化您正在做的事情,并在您想要转到标准输出时使用 std::cout,并使用 Log 函数写入您指定为程序输入的文件。

如果有一个显示到 std::cout 的 Menu 函数,并且 Log 文件可以配置为结束位置,可能会更整洁。