我不知道爲什麼一個文件指針從文件中讀取一個額外的行,特別是最後一行,這裏是代碼:讀一個C文件,多讀一行,爲什麼?
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);
}
和文件恰好有20條線,但線20條,打印兩次。
這是哪個錯誤?
在此先感謝。
解決了,感謝@NeilTownsend – 2012-04-13 13:12:46
勿投的malloc的返回類型(看[這裏](HTTP ://stackoverflow.com/q/605845/1151654)知道爲什麼)。 – Eregrith 2012-04-13 13:33:57