Когда я читаю этот файл, как я могу прочитать все записи - PullRequest
0 голосов
/ 14 марта 2012

Когда я читаю файл, он не включает последнюю запись, поэтому в этом случае Билл Байкинг не отображается

Вот файл hobbies.dat:

Bob Running
Josh Swimming
Bill Biking

А вот код программы:

#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;
}

1 Ответ

0 голосов
/ 14 марта 2012

Измените цикл следующим образом:

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

Я изменил это, потому что вам нужно сделать окончательный отпечаток перед тем, как снова fscanf и достичь EOF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...