【问题标题】:How to make Visual Studio's Immediate window give me plain string output?如何让 Visual Studio 立即窗口给我纯字符串输出?
【发布时间】:2017-05-18 02:34:26
【问题描述】:

如果我在 Immediate 中评估生成长而复杂的字符串的东西,调试器会在 C 字符串转义中编码所有内容,所以我最终会在我的整个文本中得到一堆 \n\t 等等然后必须手动修复。 (这在\n 的情况下特别烦人,因为大多数文本编辑器无法进行多行搜索和替换!)

有没有办法让调试器给我原始的、未经处理的、多行的字符串值?

【问题讨论】:

  • @Mason Wheeler,有更新吗?您能否分享有关此问题的最新信息?:)

标签: visual-studio debugging visual-studio-2013


【解决方案1】:

我们可以在 Watch 窗口中使用 Text Visualizer 检查字符串值,它将显示没有任何 \n 和 \t 内容的字符串值。

请在您的代码中的字符串变量中添加一个断点并开始调试您的代码。当断点命中时,您可以右键单击变量并选择“添加监视”,然后按 F11 转到下一行代码。现在您可以通过单击“Text Visualizer”图标从 Watch 窗口查看字符串值。它不会显示 \n 和 \t。

【讨论】:

  • 嗯,这是另一种看待它的方式,但这不是原始问题的答案。并非每次您都可以使用文本可视化器,例如 ?SomeMethod() 不能以这种方式使用 XML 或多行生成字符串结果,除非您将结果保存在某个变量中然后使用文本可视化器。跨度>
【解决方案2】:

您可以使用 C# 交互窗口(视图 > 其他窗口 > C# 交互)。

用法:

键入命令:

Console.Write("r1bqkb1r/pp3ppp/2p5/3pP3/P2Q1P2/2N1B3/1PP3PP/R4RK1 w - - 1 2\nr1bqkb1r/pp3ppp/2p5/3pP3/P2Q1P2/2N1B3/1PP3PP/R4RK1 w - - 1 2")

然后我会得到:

r1bqkb1r/pp3ppp/2p5/3pP3/P2Q1P2/2N1B3/1PP3PP/R4RK1 w - - 1 2
r1bqkb1r/pp3ppp/2p5/3pP3/P2Q1P2/2N1B3/1PP3PP/R4RK1 w - - 1 2

C# 交互式窗口独立于项目,因此它适用于所有语言(C#、C++、...)的所有项目

这是演示图片:

【讨论】:

    【解决方案3】:

    在即时窗口中的表达式末尾设置格式说明符。

    问题:

    ? "test string with escape chars \r\nThis is on the next line"
    "test string with escape chars \r\nThis is on the next line"
    

    在末尾添加 、nq 格式说明符:

    ? "test string with escape chars \r\nThis is on the next line", nq
    test string with escape chars 
    This is on the next line
    

    这与实变量完全相同:

    ? testvariable, nq
    test string with escape chars 
    This is on the next line
    

    (我在 Print 语句上使用格式说明符尝试了 Konstantine Kozachuck 的答案,但它的工作方式与 ? 语句不同,但它确实帮助我弄清楚了我想要的。)

    【讨论】:

      【解决方案4】:

      打印variableName,sb。 示例(立即窗口):

      >"raw\nmultiline\tstring",sb
      raw
      multiline   string
      

      文档:https://docs.microsoft.com/en-us/visualstudio/debugger/format-specifiers-in-cpp?view=vs-2019

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-12
        相关资源
        最近更新 更多