2012-04-19 156 views
14

有沒有辦法在Visual Studio中捕捉stdout和stderr?例如,當我使用有沒有辦法在Visual Studio中捕捉stderr和stdout?

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

黑色窗口出現並消失。它太快了,我看不到它。 IDE中有一個輸出部分,但它只允許我選擇來自構建和其他內容的顯示輸出,但沒有選擇標準輸出。

作弊的解決方案也許調用

system("pause"); 

,但它不健全的權利。我在選項中搜索,但我找不到一個項目。

任何人有任何想法?謝謝。我剛開始使用VS,而我之前在Linux上。

+0

看看這裏的答案:http://stackoverflow.com/questions/1343320/when-debugging-on-windows-where-does-stderr-go – 2012-04-19 23:43:33

回答

4

而不是使用「開始調試」命令,如果你想檢查輸出,使用「無需調試開始」。這通常是我如何處理它。命令提示符窗口將保持不動,直到您關閉它。如果發生崩潰或其他問題,您可以隨時將Visual Studio重新附加到進程,或者直接使用「開始調試」運行它。

1

沒有真正試圖重定向標準輸入/犯錯流,也有一些替代品,你可以嘗試:

  • 打開命令提示符窗口,cd到你的可執行 將被創建,然後目錄從那裏運行它。也許嘗試使用類似std :: cin.get()的東西;或std :: cin.ignore(std :: cin.rdbuf() - > in_avail()+ 1);而不是系統(「暫停」)。通過OutputDebugString
+0

這兩種方式聽起來都不錯,但無論如何感謝。這不是你的錯。你們不覺得這個問題不方便嗎?只是好奇。 – YankeeWhiskey 2012-04-19 23:43:28

+0

如我在答案中指出的那樣將subsytem更改爲控制檯。 – Iceman 2012-04-19 23:48:34

+0

我知道有一個我錯過了,Icemans評論它是正確的。 – thelazydeveloper 2012-04-19 23:48:40

4

圍棋在Visual Studio調試器

  • 顯示輸出項目屬性 - >鏈接器 - >系統 - >更改子系統控制檯。

  • +0

    我改變了,但黑色的窗口不斷彈出。我在哪裏可以看到VS中的輸出? – YankeeWhiskey 2012-04-19 23:48:10

    +3

    輸出將在彈出的控制檯中。如果您轉到Debug - > Start Without Debugging,它不會消失。 – Iceman 2012-04-19 23:49:39

    相關問題