6

txt ファイルから行を読み取り、データベースに追加するコードがいくつかあります。

txt ファイルに直接データを入力すると、改行を認識するのに十分です。if (ch == '\n')

ただし、Microsoft Word をカット アンド ペーストすると、チェックが\n機能しません。

16 進値/文字を 1 つずつダンプすると、実際のデータは次のようになります。

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

終止符は、1 行の最後の文字です。「X」は次の行の最初の文字です。16 進数の 'd' は改行を引き起こします。

何が起こっている?また、変数が 16 進数でスペース d になっている場合、ch変数を に対してテストするにはどうすればよいでしょうか?> d<

ありがとう。

4

3 に答える 3

17

Windows では、改行 (0x0d) とそれに続くライン フィード (0x0a) のペアの文字を使用して行を終了します。

これらは、Cではそれぞれ'\r'およびとして記述でき'\n'ます。

于 2012-05-10T07:52:43.707 に答える
3

C の 16 進数リテラルには0xor0Xのプレフィックスが付いているため、この場合は0xdor0XDまたはを使用できます0xD

于 2012-05-10T07:48:04.053 に答える
2

最初に「Hex-editor」でデータを分析してから、特定の文字に対応する 16 進値を取得し、それらの値に 0x を追加して変数をテストすることもできます。

于 2012-05-10T09:10:16.183 に答える