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
文件可以配置为结束位置,可能会更整洁。
我正在使用命令行和重定向符号启动我的程序,就像这样
程序 > out.txt
有没有办法让一些 cout 调用可以忽略 > 运算符并仍然显示在控制台中?
我想要的是在控制台中显示一个控制台菜单,但其余部分将被重定向到文件。
谢谢。
没有,没有。
>
将整个 stdout
流重定向到一个文件,而不是特定的写入该流。如果要写入多个位置,则要使用多个流。例如,您可以使用 stderr
:
cout << "redirected" << endl;
cerr << "not redirected" << endl;
您可以重新格式化您正在做的事情,并在您想要转到标准输出时使用 std::cout,并使用 Log
函数写入您指定为程序输入的文件。
如果有一个显示到 std::cout 的 Menu
函数,并且 Log
文件可以配置为结束位置,可能会更整洁。