Cプログラミングのcin.peek()に相当するものは何ですか? '/r' と '/r/n' (これらは DOS ファイルの行末マーカーです) のファイルをスキャンする必要があるため、現在の文字が '/r' の場合は次の文字を「覗く」必要があります。 '
ありがとう!
ungetc()
文字を覗いたときに、文字を (まだ読まれていないかのように) 押し戻すことができる があります。
http://www.zyba.com/reference/computing/c/stdio.h/ungetc.php
read+ の代わりにungetc()
、ファイルを文字単位で読み取り、不要な '\r' や '\n' をスキップするか、その他の特別な処理を実行することができます。簡単なステート マシンが役立ちます。
試す:
char c;
FILE *fp;
// opening file, etc.
if((c = getc(fp)) == '\r')
ungetc(c, fp);
また:
char c;
FILE *fp;
// opening file, etc.
fread(&c, sizeof(char), 1, fp);
if(c == '\r')
{
fseek(fp, -1L, SEEK_CUR);
fwrite(&c, sizeof(char), 1, fp);
}
2 つの値を (「\n\r」として) 読み取る必要がある場合は、それを保存するために short を使用し、その数値を使用したテストを使用できます。