Forum: PC-Programmierung Cout cachen und später ausgeben lassen


von Cout (Gast)


Lesenswert?

Moin,

gibt es eine Möglichkeit sämtliche Nachrichten die ich per Cout schreibe 
zu cachen?

Mein Wunsch wäre folgender: Eine .exe wird als Prozess im Hintergrund 
gestartet, schreibt aber bereits per cout Daten in die Ausgabe.

Anschließend kann ich - wie auch immer, beispielsweise über ein Tray 
Icon - die Kommandozeile öffnen und alle bisherigen Couts anzeigen 
lassen und kann dieses Fenster auch so häufig öffnen und schließen wie 
ich möchte :).

Danke!

von Hannes (Gast)


Lesenswert?

Du koenntest die Ausgaben mit > in eine Datei umleiten:

foo.exe > Datei.txt

und die Datei dann spaeter lesen wann es dir beliebt. Prinzipiell auch 
in beliebig vielen Fenstern und so oft du willst. Bin mir nur nicht ganz 
sicher, warum du das willst.

Cheerio

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Eine std::stringstream-Instanz statt std::cout benutzen.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

std::cout ist ein stream, an dessen stream buffer Du mittels rdbuf() 
kommst. Mit rdbuf() kannst Du auch einen anderen Puffer setzen. Wenn Du 
da z.B: einen std::stringbuf angibst, dann kannst Du Dir den Output dort 
später abholen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.