0

C でプログラムを読んでいて、新しい行を見つけたいのですが、方法がわかりません。

私はこのようなテキストファイルを読んでいます:

    while(!feof(fp)){
         fgets(buffer, 4, fp);
    }

私のテキストファイルは次のようなものです:

C01 RDA ALB NAC EDF
C02 MCA EDF SLF ADG

fgets によって読み取られている単語が新しい行にあるかどうかをどのように知ることができますか??

4

2 に答える 2

0

本当に一度に 3 文字を取得したいですか (これはsize4文字で得られるものです。文字数fgetsよりも 1 つ少ないsize文字を読み取るためです)。

C01  RD A A LB  NAC  ED C02  MC A E DF  SLF  AD

(改行を示す)? 私はそうは思いませんが、一度に 4 文字が必要であり、単語の区切り記号をトリムします。

char buffer[5];
char newline = 1;
while (fgets(buffer, sizeof buffer, fp))
{
    if (newline) puts("new line:");
    newline = buffer[3] == '\n';
    buffer[3] = '\0';
    puts(buffer);
}
于 2014-05-12T13:12:12.503 に答える
0

feof()I/O を行う前に呼び出すことは想定されていません。

各改行の場所に興味がある場合は、代わりにfgetc(). 次に、文字ストリームを単語に解析します。これにより、改行が発生したときに気付くのが簡単になります。

于 2013-01-09T13:10:37.077 に答える