2012-05-10 58 views
3

我有一些代碼從一個txt文件中讀取行,然後不添加到一個數據庫中。C:換行進制數值

如果您輸入的數據直接進入txt文件,那麼這是足以識別換行符:if (ch == '\n')

但是,如果你削減&貼出來的Microsoft Word,檢查\n不起作用。

如果我dump出來的十六進制值/字符一個接一個,實際的數據是這樣的:

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

的句號是在一行的最後一個字符。 'X'是下一行的第一個字符。十六進制'd'導致換行符。

這是怎麼回事?我如何測試我的ch變量對> d<,因爲它的空間d在十六進制?

謝謝。用C

+0

也許Word文件使用\ r \ n作爲換行符,與\ r得到了某種程度上的你在它粘貼文件編輯器損壞。你用什麼編輯器來創建txt文件? – Carlo

+0

@Carlo我在Mac上使用TextEdit。 – Nick

+0

謝謝,先生們:) – Nick

回答

9

Windows使用一對字符的行尾:一個回車符(0x0D),接着是進料線(0X0A)。

您可以在C分別寫這些作爲'\r''\n'

2

十六進制文字的前綴爲0x0X,所以你的情況,你可以使用0xd0XD0xD

1

你可以先分析你的數據在「十六進制編輯器」,然後就可以得到對應於特定字符的十六進制值,也可以測試使用以0x附加這些值的變量。

相關問題