Trong ANSI C++, làm thế nào tôi có thể gán dòng cout cho một tên biến? Những gì tôi muốn làm là, nếu người dùng đã chỉ định một tên tập tin đầu ra, tôi gửi đầu ra ở đó, nếu không, gửi nó vào màn hình. Vì vậy, một cái gì đó như:Gán cout cho một tên biến
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;
tôi đã cố gắng làm điều này như một chức năng Macro cũng như:
#define OUTPUT outFileRequested?outFile:cout
OUTPUT << "whatever" << endl;
Nhưng điều đó đã cho tôi một lỗi biên dịch là tốt.
Tôi cho rằng tôi có thể sử dụng khối IF-THEN cho mọi đầu ra, nhưng tôi muốn tránh điều đó nếu có thể. Bất kỳ ý tưởng?
Đó là giải pháp rất thanh lịch. Cảm ơn! – user12576