Wie kann ich in ANSI C++ den Cout-Stream einem Variablennamen zuweisen? Was ich tun möchte, ist, wenn der Benutzer einen Ausgabedateinamen angegeben hat, sende ich dort eine Ausgabe, andernfalls sende ich ihn an den Bildschirm. So etwas wie:Cout einem Variablennamen zuweisen
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;
habe ich versucht, dies als eine Makro-Funktion zu tun, wie gut:
#define OUTPUT outFileRequested?outFile:cout
OUTPUT << "whatever" << endl;
Aber das gab mir auch einen Compiler-Fehler.
Ich dachte, ich könnte entweder einen IF-THEN-Block für jeden Ausgang verwenden, aber ich würde das gerne vermeiden, wenn ich könnte. Irgendwelche Ideen?
Das ist eine sehr elegante Lösung. Vielen Dank! – user12576