如何从C中的文件中获取separeated int

Dvi*_*aim 1 c int file scanf

我怎样才能在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)

但我认为这将是一个问题,因为未知的文件大小和垃圾问题.你怎么看?

谢谢!!

pmg*_*pmg 5

使用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)