【问题标题】:How to output new line in Visual Studio actions?如何在 Visual Studio 操作中输出新行?
【发布时间】:2017-09-13 19:37:15
【问题描述】:

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

所以我想在字符串的开头添加换行符,以避免它与我之前的消息混淆。我尝试添加\n,但\n 原样输出,没有被转义

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

【问题讨论】:

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


    【解决方案1】:

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

    {"\n",nq}
    

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

    【讨论】:

      【解决方案2】:

      您可以尝试以下四件事:

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

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

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

      2. 就在您当前的断点之前,添加一个带有非常短的操作消息的附加断点(一个点或逗号),以便在您的真正消息之前获得一个额外的换行符。 p>

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

      4. 写信给clogstd::clog << message << std::endl;

      【讨论】:

      • 很好的把戏! :-) 让我们拭目以待,看看有没有正式的解决方案。
      猜你喜欢
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多