タイトルがそれ自体を物語っていると思います。
ファイルの内容を比較するg++とNotepad++を使用して、Windows7でCプログラムをコーディングしています。
ファイルの内容:
simple
file with lines
ファイルの行末はWindowsスタイルのCRLFです。
このコードを使用してファイルの長さを数えると、次のようになります。
fseek(file, 0, SEEK_END);
size = ftell(file);
fseek(file, 0, SEEK_SET);
私は23を取得します。
行末をUnix形式のLFに変更すると(Notepad ++を使用)、22の長さになります。
これは、2つのファイルを比較するときに一種の問題を引き起こします。そのため、特定のファイルにLF、CR、またはCRLFがあるかどうかを判断する方法があるかどうかを尋ねます。
CRとLFを区別できることはわかっています。LFのASCIIコードは10、CRのASCIIコードは13です。または、LFは「\ n」、CRは「\r」です。
しかし、charの後にfile charを読み取ると、CRLFがある場合でも、常にLF(ascii 10)が返されます。
はっきりさせておきたいと思います。ありがとう。