2012-04-19 12 views
14

C'è un modo per catturare lo stdout e lo stderr in Visual Studio? Ad esempio, quando utilizzoC'è un modo per catturare lo stderr e lo stdout in Visual Studio?

cout <<"Hello world!"<< endl; 

Una finestra nera appare e scompare. È così veloce che non riesco a vederlo. C'è una sezione di uscita nell'IDE, ma mi consente solo di scegliere l'output di visualizzazione da build e qualcos'altro, ma senza la scelta di stdout.

Una soluzione barare magari chiamando

system("pause"); 

ma non suona bene. Ho cercato nell'opzione ma non riesco a trovare un oggetto.

Qualcuno ha qualche idea? Grazie. Ho appena iniziato a usare VS e sono già su Linux.

+0

Date un'occhiata alle risposte qui: http://stackoverflow.com/questions/1343320/when-debugging-on-windows-where-does-stderr-go –

risposta

4

Invece di utilizzare il comando "Avvia debug", se si desidera controllare l'output, utilizzare "Avvia senza debug". Questo è generalmente il modo in cui lo gestisco. La finestra del prompt dei comandi rimarrà attiva fino alla chiusura. Se si verifica un arresto anomalo o qualcosa del genere, è sempre possibile ricollegare Visual Studio al processo o semplicemente eseguirlo con "Avvia debug".

1

Senza in realtà cercando di reindirizzare i flussi stdin/ERR, ci sono alcune alternative si può provare:

  • Aprire una finestra del prompt dei comandi e cd alla directory vostro eseguibile verrà creato nella quindi eseguirlo da lì .
  • Forse prova a utilizzare qualcosa come std :: cin.get(); o std :: cin.ignore (std :: cin.rdbuf() -> in_avail() + 1); invece di sistema ("pausa").
  • uscita di visualizzazione nel debugger di Visual Studio tramite OutputDebugString
+0

In entrambi i casi sembra decente, ma grazie comunque. Non è colpa tua. Non vi sentite a disagio per questo problema? Solo curioso. – YankeeWhiskey

+0

Cambiare il sottosistema in console come indicato nella risposta. – Iceman

+0

Sapevo che ce n'era uno che mi mancava, il commento di Icemans lo ha corretto. – thelazydeveloper

4

Vai al progetto Proprietà -> Linker -> Sistema -> Cambia sottosistema di console.

+0

Ho cambiato, ma la finestra nera continua a spuntare. Dove sono supposto di vedere l'output in VS? – YankeeWhiskey

+3

L'output sarà nella console che si apre. Non scomparirà se vai a Debug -> Avvia senza debug. – Iceman

Problemi correlati