2012-04-19 14 views
1

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

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

ストリームを正しく閉じていますか? - > fclose(fp); – SanBen

+0

R34lthing、はいこの関数が呼び出されたメインループの最後にファイルを閉じています – CRS

答えて

7

あなたが同じFILEオブジェクトと、この複数回行いたい場合は戻ってスタートにファイルポインタをリセットする必要があります:

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

Reference

1

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

関連する問題