2017-04-19 29 views
4

我寫這個演示程序只是爲了解釋我的問題。它不會做任何有用的東西:如何在Visual Studio中的斷點操作中打印長字符串?

#include <string> 

int main(void) 
{ 
    std::string strMsg = "This is a very very long message, long enough that Visual Studio can't output it entirely. If you don't believe, just try it yourself and you'll see. What? I'm not long enough? Now it will be enough. You'll see ellipses at the end."; 
    return 0; 
} 

然後我在return 0;添加一個破發點,用行動來打印strMsg輸出窗口

enter image description here

打印的字符串看起來像:

strMsg =「這是一個非常非常長的消息,足夠長的時間的Visual Studio無法輸出它完全如果你不相信。 ,只是自己嘗試一下,你會看到什麼?我不是足夠長的時間呢?現在也就足夠了。......

請注意...在打印消息的結束,這是因爲字符串太低完全打印。

有沒有什麼辦法解決這個問題,所以Visual Studio可以打印整個字符串?

+0

這可能不是你的真實情況下適合您的選項,而只是出於興趣:會發生什麼,如果您將字符串中的換行符? – Jeremy

+0

@Jeremy你的意思是'\ n'?該字符將按原樣打印,例如, ''abc \ n「'將被打印爲'abc \ n'。 –

回答

0

您可以通過在行上放置斷點並選擇變量名稱來檢查字符串的全部值。然後,您應該看到一個小的下拉列表,允許您查看文本,xml等。這允許您使用文本可視化工具。

在實時代碼中,您需要使用printfcout將值打印到控制檯,或打印到文件或日誌。

enter image description here

+0

的確如此。但有時我需要該程序在打斷點時繼續執行(不會暫停)。例如,對於一些時間敏感的場合。 –

+0

然後你應該真的使用一些日誌框架。打印到控制檯會降低應用程序的速度,特別是在時間關鍵的代碼中。 –

+0

你可能是對的。但是日誌不能覆蓋所有的情況/變量,有時我仍然需要使用*將消息記錄到輸出窗口*。 –

相關問題