2012-03-14 9 views
0

私はこのケースでは、ビルサイクリングここは、どのように私はすべてのレコードを読み取ることができ

まで表示されませんので、それは、最後のレコードが含まれていないファイルを読むhobbies.datファイルのとき:次のように

#include <stdio.h> 
#include <stdlib.h> 

int main(void) 
{ 
    FILE *fp; 
    char name[30]; 
    char hobby[30]; 

    char *filename = "hobbies.dat"; 
    fp = fopen(filename, "r"); 

    if (fp == NULL) { 
     printf("File cannot open"); 
     perror("The following error has occured"); 
    } 
    else 
    { 
     printf("\nName\tHobby\n\n"); 
     fscanf(fp, "%s%s", name, hobby); 

     while (!feof(fp)) 
     { 
      printf("%s\t%s\n", name, hobby); 
      fscanf(fp, "%s%s", name, hobby); 
     } 
    } 

    system("pause"); 
    return 0; 
} 

答えて

0

変更ループ:

Bob Running 
Josh Swimming 
Bill Biking 

そしてここでは、プログラムのコードです

... 
else 
{ 
    printf("\nName\tHobby\n\n"); 
    while (!feof(fp)) 
    { 
     fscanf(fp, "%s%s", name, hobby); 
     printf("%s\t%s\n", name, hobby); 
    } 
} 
... 

fscanfの前に最終印刷を行い、EOFに到達する必要があるため、これを変更しました。

+0

ありがとう – user1251302

関連する問題