2012-05-10 12 views
3

私はtxtファイルから行を読み込んだ後、データベースに追加するコードをいくつか持っています。C:改行16進値

あなたがまっすぐにtxtファイルにデータを入力すると、これは改行を認識するのに十分である:あなたはMicrosoft Wordの外の&ペーストを切った場合if (ch == '\n')

しかし、\nをチェックすることはできません。

私は進値/文字一つ一つをダンプした場合、実際のデータは次のようになります。

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

フルストップが1行の最後の文字です。 'X'は次の行の最初の文字です。ヘックス 'd'は改行を引き起こします。

何が起こっているのですか?そして、変数を> d<に対して16進数のスペース-dを使ってどのようにテストできますか?

ありがとうございました。 Cで

+0

おそらく、ワードファイルは改行として\ r \ nを使い、ファイルを貼り付けているエディタで何らかの形で破損してしまいます。どのエディタを使ってtxtファイルを作成していますか? – Carlo

+0

@Carlo MacでTextEditを使用しています。 – Nick

+0

ありがとう、紳士:) – Nick

答えて

9

Windowsでは、行の終わりには改行(0x0d)とそれに続く改行(0x0a)が使用されます。

これらは、それぞれ'\r''\n'と書くことができます。

2

進リテラルは0xまたは0Xが付いているので、あなたの場合には、あなたは0xdまたは0XDまたは0xDを使用することができます。

1

「ヘキサエディタ」でデータを解析してから、特定の文字に対応する16進値を取得し、0xを付加した値を使って変数をテストすることもできます。