5

一段时间以来,当我调试 Visual C++ 应用程序并在 Local、Auto 或 Watch 调试窗口中查看任何 CString 或 char*(或任何其他基于 ascii char 的类型)变量时,我的变量中的 CR/LF 字符不显示一点也不。

换句话说,如果我在代码中将字符串变量设置为“This is a line\r\nThis is another line”,调试窗口将显示“This is a lineThis is another line”。我希望它显示的是“这是一行□□这是另一行”,以​​便我可以看到该文本中的两个额外字符。

这导致我在尝试调试字符串解析代码时犯了一些错误。请注意,文本可视化器正确地将文本分成单独的行,但如果我不需要,我不想使用文本可视化器。此外,我的一些同事能够以正确的方式看到 CR/LF 字符,但我们无法确定为什么没有为我显示它们。

提前谢谢了。

4

3 回答 3

3

根据这个旧链接,这似乎是某种难以重现的错误(我也没有在 2k8 中看到它们):

如果我们想正确地做到这一点,我们需要为这些字符发出正确的转义序列。例如在字符串中显示“\r\n”。剥离历史特殊字符的行为,将在未来的版本中修复。如果您正在查看带有换行符的文本,您可以将字符串视为字符数组:键入“str,100”以将长度为 100 的字符串视为数组。或者您可以单击放大镜字形并在多行编辑控件中查看字符串。

一个月以后:

我们无法在 VS2003 和 VS2005 上重现此问题。这看起来像是特定于机器的问题。

因此,如果您的同事真的看到了,那么我们的设置中肯定发生了一些奇怪的事情。

于 2009-05-08T04:20:00.850 回答
0

会不会是你使用的字体?你们都使用相同的(最好是默认的)字体吗?

我遇到了很多令人讨厌的问题。不确定这是否是您的问题,但需要检查。

于 2009-05-07T19:48:42.280 回答
0

为了响应我发现的 SQL Server 问题,至少在 2008 年,如果您获得 200 行进行编辑,它将显示 \r\n 方块,如果您获得 1000 行进行只读,则不会。

于 2011-12-16T14:40:56.823 回答