假设我有类似的代码
#include <iostream>
using namespace std;
int main() {
cout << "Redirect to file1" << endl;
cout << "Redirect to file2" << endl;
return 0;
}
我想将第一个输出重定向到 file1,将第二个输出重定向到 file2。那可能吗?
我认为在 C 中,fclose(stdout)
重新打开stdout
可能会有所帮助,但我不确定如何重新打开它或它是否有效。
谢谢
更新:为了什么?
我有一个程序 A,它从用户那里读取输入并生成相应的输出。现在我想检查它是否正确,我有一个程序 B,它为 A 生成输入,以及正确的输出。B 将一次生成一组测试数据。我将进行数千次测试。
在我的机器上,一千倍的./B > ``mktemp a.XXX``
效果比使用ofstream
. 使用fstream
数千次,我的硬盘灯疯狂闪烁。但不是在重定向到临时文件时。
更新2:
在 C++ 中,流行的答案似乎cout
是cerr
.
除了 C 之外stderr
,我可以关闭stdout
并重新打开它吗?