Wie kann ich in ANSI C++ den cout-Stream einem Variablennamen zuweisen? Wenn der Benutzer einen Namen für die Ausgabedatei angegeben hat, soll die Ausgabe dorthin gesendet werden, andernfalls soll sie auf den Bildschirm ausgegeben werden. Also so etwas wie:
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;
Ich habe versucht, dies auch als Makrofunktion zu tun:
#define OUTPUT outFileRequested?outFile:cout
OUTPUT << "whatever" << endl;
Aber auch das führte zu einem Compilerfehler.
Ich vermutete, dass ich entweder einen IF-THEN-Block für jeden Ausgang verwenden könnte, aber ich würde das gerne vermeiden, wenn ich könnte. Irgendwelche Ideen?