テキストファイルから1行を印刷しようとしています。次の行に移動して、印刷する行がなくなるまで印刷します。これは私がこれまでに持っているものですが、プログラムを初めて実行したときにのみ機能します。
void ReadFile(FILE *a)
{
char line[23];
while(fgets(line, 22, a) != NULL)
{
printf("%s", line);
}
}
テキストファイルから1行を印刷しようとしています。次の行に移動して、印刷する行がなくなるまで印刷します。これは私がこれまでに持っているものですが、プログラムを初めて実行したときにのみ機能します。
void ReadFile(FILE *a)
{
char line[23];
while(fgets(line, 22, a) != NULL)
{
printf("%s", line);
}
}
同じオブジェクトでこれを複数回実行する場合は、ファイルポインタを最初にリセットする必要があります。FILE
void ReadFile(FILE *a)
{
char line[23];
rewind(a);
while(fgets(line, 22, a) != NULL)
{
printf("%s\n", line); // Added new line
}
}
参照。
あなたはrewind(a)
ファイルを作成していないので、関数のすべての反復は最後にファイルをfgets
残したところから始まります(あなたの場合はEOF)。