1

テキストファイルから1行を印刷しようとしています。次の行に移動して、印刷する行がなくなるまで印刷します。これは私がこれまでに持っているものですが、プログラムを初めて実行したときにのみ機能します。

void ReadFile(FILE *a)
{
    char line[23];
    while(fgets(line, 22, a) != NULL)
    {
        printf("%s", line);
    }
}
4

2 に答える 2

7

同じオブジェクトでこれを複数回実行する場合は、ファイルポインタを最初にリセットする必要があります。FILE

void ReadFile(FILE *a)
{
    char line[23];
    rewind(a);
    while(fgets(line, 22, a) != NULL)
    {
        printf("%s\n", line);    // Added new line
    }
}

参照

于 2012-04-19T12:16:02.470 に答える
1

あなたはrewind(a)ファイルを作成していないので、関数のすべての反復は最後にファイルをfgets残したところから始まります(あなたの場合はEOF)。

于 2012-04-19T12:16:20.573 に答える