我不知道为什么一个文件指针从文件中读取一个额外的行,特别是最后一行,这里是代码:读一个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