0

を使用して、ファイルが改行で終了しているかどうかを確認する必要がありますCFile。私が試したこと:

  1. ファイルポインタをファイルの末尾に向ける
  2. ポインタを 2 単位後ろに移動する
  3. ポインターが上を指しているかどうかを確認する\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 でファイルの末尾にある改行をチェックする方法はありますか?

4

1 に答える 1

0

CFile::typeBinaryファイルを開くときに使用して問題を解決しました。

CFile::typeText私の場合は望ましくない、何か特別な処理を行うようです。

于 2016-11-08T05:30:15.610 に答える