Чтение файла C, чтение дополнительной строки, почему?

Я не знаю точно, почему указатель файла читает дополнительную строку из файла, в частности, последнюю строку, вот код:

<code>FILE *fp ;
fp = fopen ("mac_ip.txt", "r") ;
int mac;
char *ip = (char *) malloc(15);

while(!feof(fp)){
    fscanf(fp,"%i",&mac);
    fscanf(fp,"%s",ip);

    printf("MAC: %i\n",mac);
    printf("IP: %s\n",ip);  
}
</code>

и файл имеет ровно 20 строк, но строка 20 печатается дважды.

Какая ошибка?

Заранее спасибо.

Ответы на вопрос(6)

Ваш ответ на вопрос