我怎样才能在C中得到一个单独的int来自像"1,2,3 ,,, 5,6"这样的文件(到一个数组或一个接一个)而没有得到像""或","这样的垃圾? (,,,是一种可能的情况)我想过strtok但它只处理字符串,我不知道文件的长度是多少,所以可能fgets不是解决方案..我试过这个:
fp=fopen("temp.txt","r");
if(fp==NULL)
{
fprintf(stderr,"%s","Error");
exit(0);
}
while(fscanf(fp,"%d",&num)!=EOF)
{
printf("first num is %d",&num);
}
Run Code Online (Sandbox Code Playgroud)
但我认为这将是一个问题,因为未知的文件大小和垃圾问题.你怎么看?
谢谢!!
使用scanf()的返回值
int chk;
do {
chk = fscanf(fp, "%d", &num);
switch (chk) {
default: /* EOF */;
break;
case 0: fgetc(fp); /* ignore 1 character and retry */
break;
case 1: printf("num is %d\n", num);
break;
}
} while (chk >= 0);
Run Code Online (Sandbox Code Playgroud)