我正在学习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;
}
答案 0 :(得分:0)
此while(!EOF)
始终为false,请尝试while (fscanf(fichero, "%d", &whatis) == 1)
,原因是EOF
是I / O函数返回的常量值,表示当前的I / O操作失败,因为文件已结束。
此外,fscanf()
将您要扫描的文件作为第一个参数,您拥有它的方式会导致未定义的行为,因为字符串文字将被视为FILE *
。
您必须特别启用编译器警告,因为您正在学习,编译器警告和错误消息是我认为学习的良好来源。