【问题标题】:C: newline hex valuesC:换行十六进制值
【发布时间】:2012-05-18 18:15:19
【问题描述】:

我有一些代码从 txt 文件中读取行,然后添加到数据库中。

如果您直接在 txt 文件中键入数据,那么这足以识别换行符:if (ch == '\n')

但是,如果您从 Microsoft Word 中剪切和粘贴,则无法检查 \n

如果我将十六进制值/字符一一转出,实际数据如下所示:

2e .    [ Last char of line ]
 d 
58 X    [ First char on next line ]

句号是一行的最后一个字符。 'X' 是下一行的第一个字符。十六进制 'd' 导致换行。

发生了什么事?我如何测试我的ch 变量和> d<,因为它是十六进制的空格-d?

谢谢。

【问题讨论】:

  • 也许 word 文件使用 \r\n 作为换行符,并且 \r 在您将文件粘贴到其中的编辑器中以某种方式损坏。你用什么编辑器来创建 txt 文件?
  • @Carlo 我在 Mac 上使用 TextEdit。

标签: c hex newline


【解决方案1】:

您可以首先在“十六进制编辑器”中分析您的数据,然后您可以获得与特定字符对应的十六进制值,还可以使用附加 0x 的值来测试变量。

【讨论】:

    【解决方案2】:

    Windows 使用一对字符来结束一行:回车符 (0x0d) 后跟换行符 (0x0a)。

    您可以在 C 中将它们分别写为 '\r''\n'

    【讨论】:

      【解决方案3】:

      C 中的十六进制文字以0x0X 为前缀,因此您可以使用0xd0XD0xD

      【讨论】:

        猜你喜欢
        • 2010-10-04
        • 2011-08-04
        • 1970-01-01
        • 2014-11-30
        • 2018-11-18
        • 1970-01-01
        • 2017-07-31
        • 2013-07-20
        • 2012-06-17
        相关资源
        最近更新 更多