C语言scanf的%f, 实际输入的是字符,程序要如何判断它输入的是数字还是字符呢?

浮点型好像也没有asicc码,有个作业需要判断无效输入,想不出来。。
例如scanf("%f",num);
实际输入的是‘a‘,
如何才能输出printf("Invalid input");
求一段代码,谢谢
最新回答
手可摘星辰

2024-05-04 15:06:54

如果在%f控制下输入非数字字符,则scanf认为数字输入已经完成,将非数字字符前面的输入按float类型赋给对应的变量;如果前面没有输入字符,那就返回一个错误信息EOF。

int main(int argc,char *argv[]){
    float x;
    if(scanf("%f",&x)!=1)
        printf("Invalid input\n");
    else
        printf("%f\n",x);
    return 0;
}
自己看图片。没有明白不能判断是什么意思!