在 ANSI C++ 中,如何将 cout 流分配给变量名?我想要做的是,如果用户指定了输出文件名,我将输出发送到那里,否则将其发送到屏幕。所以像:
ofstream outFile;
if (outFileRequested)
outFile.open("foo.txt", ios::out);
else
outFile = cout; // Will not compile because outFile does not have an
// assignment operator
outFile << "whatever" << endl;
我也尝试将其作为宏函数执行:
#define OUTPUT outFileRequested?outFile:cout
OUTPUT << "whatever" << endl;
但这也给了我一个编译器错误。
我想我可以为每个输出使用一个 IF-THEN 块,但如果可以的话,我想避免这种情况。有任何想法吗?