6

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

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

但是,如果您从 Microsoft Word 中剪切和粘贴,则检查\n不起作用。

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

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

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

到底是怎么回事?鉴于它是十六进制的空格-d,我如何测试我的ch变量?> d<

谢谢。

4

3 回答 3

17

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

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

于 2012-05-10T07:52:43.707 回答
3

C 中的十六进制文字以0xor为前缀0X,因此在您的情况下,您可以使用0xdor0XD0xD

于 2012-05-10T07:48:04.053 回答
2

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

于 2012-05-10T09:10:16.183 回答