簡體   English   中英

使用cmd.exe顯示或捕獲完整的程序輸出

[英]Show or capture complete program output using cmd.exe

我正在練習在Windows 7上使用Visual Studio 2015編寫遞歸函數。

我使用cout跟蹤我的代碼進度,但是它顯示了太多結果,即使我停止了程序,我也看不到初始結果……我只能看到中間的輸出。

如何查看完整的程序輸出?

問題在於cmd.exe (Windows命令行提示符)具有用於顯示輸出的固定大小的緩沖區。 如果程序寫入大量輸出,則僅顯示最后N行,其中N是緩沖區大小。

您可以通過幾種方式避免此問題:

  1. 寫入文件,而不是std::cout 您的所有輸出都將捕獲到文件中,您可以在所選的文本編輯器中讀取該文件。

  2. 將標准輸出重定向到文件。 my_prog.exe > output.log運行程序,輸出將重定向到output.log

  3. 將輸出輸出到more命令,一次顯示一個屏幕: my_prog.exe | more my_prog.exe | more

  4. 增加cmd.exe緩沖區大小。 如果右鍵單擊命令窗口的標題欄,則可以選擇“ 屬性”菜單選項。 在“ 布局”標簽中,您會看到名為屏幕緩沖區大小的部分。 將“ 高度”更改為更大的值,您將能夠捕獲那么多行輸出。 請注意,這在某種程度上是不可靠的,因為在執行程序之前您通常不知道它將輸出多少行。 使用文件的其他方法之一通常是更好的解決方案。

請注意,這並不是您的C ++程序真正的問題。 能夠在標准輸出流上產生大量輸出是完全合理的。 最好的解決方案是將輸出重定向或通過管道傳輸到文件的解決方案。 這些操作在大多數明智的平台(以及Windows)上都可用,並且可以完全執行您所需的操作,而無需更改程序以寫入文件。

我不確定要了解您的問題,也許您應該將輸出寫入文件而不是標准輸出中? 然后,您將看到所有結果

從命令行運行應用程序,然后將輸出重定向到文件:

yourapp.exe > yourapp.log

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM