如果我在Immediate中评估产生长而复杂字符串的内容,则调试器会对C字符串转义中的所有内容进行编码,因此我最终得到了一堆\n
,\t
,等等我的文字,然后我必须手工修复。 (\n
的情况尤其令人讨厌,因为大多数文本编辑都无法进行多行搜索和替换!)
有没有办法让调试器给我原始的,无声的多行字符串值?
答案 0 :(得分:1)
我们可以在Watch窗口中使用Text Visualizer检查字符串值,它将显示没有任何\ n和\ t内容的字符串值。
请在代码中的字符串变量中添加断点并开始调试代码。当断点命中时,您可以右键单击该变量并选择“添加监视”然后按F11转到下一行代码。现在,您可以通过单击“Text Visualizer”图标从Watch窗口查看字符串值。它不会显示\ n和\ t。
答案 1 :(得分:0)
打印variableName,sb
。
示例(立即窗口):
>"raw\nmultiline\tstring",sb
raw
multiline string
文档:https://docs.microsoft.com/en-us/visualstudio/debugger/format-specifiers-in-cpp?view=vs-2019
答案 2 :(得分:0)
您可以使用C#交互式窗口(“视图”>“其他Windows”>“ 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 ++等)的所有项目中运行
这是演示图像: