【发布时间】:2020-05-11 12:41:14
【问题描述】:
我不清楚从命令行将 stdout 重定向到文件是否也应该始终重定向 cout(对于 stderr 和 cerr 也是如此)。
作为测试,我编写了下面的代码。我的理解是,将sync_with_stdio的参数设置为true,这是默认值,cout会将其输出流式传输到stdout,在这种情况下重定向stdout也会重定向cout,这就是在我的Win10机器上使用VS时发生的情况。
但是,当我将参数更改为 false 时,所有三个输出仍然被重定向。我半点期望只有 printf 输出会被重定向,而 cout 输出仍然会显示。
由于我显然遗漏了一些东西,因此将不胜感激。谢谢!
#include <iostream>
int main()
{
std::ios::sync_with_stdio(false);
std::cout << "a\n";
std::printf("b\n");
std::cout << "c\n";
}
【问题讨论】:
标签: c++ command-line stdout cout output-redirect