Lesen Sie eine C-Datei, lesen Sie eine zusätzliche Zeile, warum?

Ich weiß nicht genau, warum ein Dateizeiger eine zusätzliche Zeile aus einer Datei liest, insbesondere die letzte Zeile. Hier ist der Code:

<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>

und die Datei hat genau 20 Zeilen, aber die Zeile 20 wird zweimal gedruckt.

Welches ist der Fehler?

Danke im Voraus.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage