3

Cプログラミングのcin.peek()に相当するものは何ですか? '/r' と '/r/n' (これらは DOS ファイルの行末マーカーです) のファイルをスキャンする必要があるため、現在の文字が '/r' の場合は次の文字を「覗く」必要があります。 '

ありがとう!

4

3 に答える 3

2

ungetc()文字を覗いたときに、文字を (まだ読まれていないかのように) 押し戻すことができる があります。

http://www.zyba.com/reference/computing/c/stdio.h/ungetc.php

于 2012-01-28T03:12:30.480 に答える
1

read+ の代わりにungetc()、ファイルを文字単位で読み取り、不要な '\r' や '\n' をスキップするか、その他の特別な処理を実行することができます。簡単なステート マシンが役立ちます。

于 2012-01-28T03:52:06.753 に答える
0

試す:

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 を使用し、その数値を使用したテストを使用できます。

于 2012-01-28T04:04:24.480 に答える