我在Visual Studio 2015中添加了一个断点,并将一个字符串输出到输出窗口。最后会有一个自动添加的换行符。问题是,我之前的输出消息(不是由断点输出)没有换行符。
所以我想在我的字符串的开头添加新的行字符,以避免它弄乱我以前的消息。我尝试添加\n
,但\n
输出为原样,未经转义。
如何在断点的动作中添加换行符?
答案 0 :(得分:4)
以下是您可以尝试的四件事:
您可以使用调试器表达式{"\n",s8b}
生成换行符,它使用C++ debugger format specifier s8b
(未加引号的8位字符串)
以下是一个包含两行消息First{"\n",s8b}Second
的示例:
(除此之外,我不知道在消息中包含换行符的任何其他方式。虽然有 方式输入多行消息(通过输入换行符和#39) ;使用numpad的Unicode代码点),Visual Studio将丢弃除输入的第一个文本行之外的所有内容。)
在当前断点之前,添加附加断点和非常短的操作消息(点或逗号),以便在真实消息之前获得额外的换行符。
如果您使用的是Windows(在Visual Studio中可能显示),您可以使用Windows API函数OutputDebugString
向调试器发送消息。这是SO问题的当前建议解决方案,"How do I print to the debug output window in a Win32 app?"
撰写邮件至clog
:std::clog << message << std::endl;
。
答案 1 :(得分:0)
除了来自stakx的answer之外,它与调试C ++应用程序的原始问题匹配,我想添加一个字符序列,该字符序列可用于调试.NET应用程序:>
{"\n",nq}
否则,C ++序列将导致此错误消息:'s8b' is not a valid format specifier