如何在Visual Studio操作中输出新行?

时间:2017-04-18 05:17:27

标签: c++ visual-studio visual-studio-2015 breakpoints

我在Visual Studio 2015中添加了一个断点,并将一个字符串输出到输出窗口。最后会有一个自动添加的换行符。问题是,我之前的输出消息(不是由断点输出)没有换行符。

所以我想在我的字符串的开头添加新的行字符,以避免它弄乱我以前的消息。我尝试添加\n,但\n输出为原样,未经转义

如何在断点的动作中添加换行符?

enter image description here

2 个答案:

答案 0 :(得分:4)

以下是您可以尝试的四件事:

  1. 您可以使用调试器表达式{"\n",s8b} 生成换行符,它使用C++ debugger format specifier s8b(未加引号的8位字符串)

    以下是一个包​​含两行消息First{"\n",s8b}Second的示例:

    Demonstration of line break in debugger tracepoint message

    (除此之外,我不知道在消息中包含换行符的任何其他方式。虽然有 方式输入多行消息(通过输入换行符和#39) ;使用numpad的Unicode代码点),Visual Studio将丢弃除输入的第一个文本行之外的所有内容。)

  2. 在当前断点之前,添加附加断点和非常短的操作消息(点或逗号),以便在真实消息之前获得额外的换行符。

  3. 如果您使用的是Windows(在Visual Studio中可能显示),您可以使用Windows API函数OutputDebugString 向调试器发送消息。这是SO问题的当前建议解决方案,"How do I print to the debug output window in a Win32 app?"

  4. 撰写邮件至clog std::clog << message << std::endl;

答案 1 :(得分:0)

除了来自stakx的answer之外,它与调试C ++应用程序的原始问题匹配,我想添加一个字符序列,该字符序列可用于调试.NET应用程序

{"\n",nq}

否则,C ++序列将导致此错误消息:'s8b' is not a valid format specifier