を使用して、ファイルが改行で終了しているかどうかを確認する必要がありますCFile
。私が試したこと:
- ファイルポインタをファイルの末尾に向ける
- ポインタを 2 単位後ろに移動する
- ポインターが上を指しているかどうかを確認する
\r\n
これが私のコードです:
cfile.SeekToEnd();
cfile.Seek(-2, CFile::current);
char buffer[2];
cfile.Read(buffer, 2);
if(buffer[0] == '\r' && buffer[1] == '\n') printf("Ended with line break!");
else printf("Not ended with line break!");
しかし、私が見つけたのは、バッファが\n
文字とガベージ文字 (204 のような奇妙な値) を与えることです。ドキュメントを調べたところ、単一の文字としてCFile::Read
のみカウントされることがわかりました。\r\n
テキスト モード ファイルの場合、キャリッジ リターンとラインフィードのペアは 1 文字としてカウントされます。
ファイルポインタは明らかに2文字を数えますが、両方を取得できないため、私はとても混乱しています。CFile でファイルの末尾にある改行をチェックする方法はありますか?