2017-04-19 69 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

你可能是对的。但是日志不能覆盖所有的情况/变量,有时我仍然需要使用*将消息记录到输出窗口*。 –

相关问题