来自C的运动文件中的Fscanf

时间:2015-05-24 16:11:29

标签: c scanf

我正在学习C语言编程考试,我正在思考和解决练习。在这个具体的例子中,我使用fscanf(终端:"传递' fscanf'参数1来自不兼容的指针类型[默认启用] ...")并且不要知道如何解决它。 谢谢你的问候

&#34;程序给出一个文件data.txt整数1行,读取全部并可视化最小奇数,一个函数应该这样做并返回最小值,它显示在屏幕上的主程序&#34; < / p>

 #include <stdio.h>

  FILE* fichero;

  int little(){
    //open the file
    char name[10] = "datos.txt";
    fichero = fopen( name,"r"); //opened in read mode
    int whatis,minimpar=99999999;
    while(!EOF){
      fscanf("%d",&whatis); //We took the number to the variable until we reach the end of file
      if (whatis%2==1){ //If the variable is odd
         if(whatis<minimpar){ //And is smaller than we have saved
            minimpar=queserasera; 
         }
      }
    }
    fclose(fichero); 
    return minimpar; //Return variable
  }

  int main(void){
    int a;
    a=little();
    printf("The smallest of the odd file is: %d",a);
    return 0;
  }

1 个答案:

答案 0 :(得分:0)

while(!EOF)始终为false,请尝试while (fscanf(fichero, "%d", &whatis) == 1),原因是EOF是I / O函数返回的常量值,表示当前的I / O操作失败,因为文件已结束。

此外,fscanf()将您要扫描的文件作为第一个参数,您拥有它的方式会导致未定义的行为,因为字符串文字将被视为FILE *

您必须特别启用编译器警告,因为您正在学习,编译器警告和错误消息是我认为学习的良好来源。