在C中检查输入是否为整数

在C中检查输入是否为整数,c,debugging,C,Debugging,我想检查一个数字是否是整数 大体上— int num, input; printf("Please enter an integer greater than 1:\n"); input = scanf("%d",&num); if ( input != 1 ){ printf("Invalid input!\n"); return 1; } 但当输入不是整数33.3时,例如,输入

我想检查一个数字是否是整数

大体上—

int num, input;
    printf("Please enter an integer greater than 1:\n");
        input = scanf("%d",&num);
        if ( input != 1 ){
            printf("Invalid input!\n");
            return 1;
        } 
但当输入不是整数33.3时,例如,输入值仍然是1

printf("%d ", input);
还给我1


程序的其余部分工作正常。只是在这件小事上被卡住了。

您需要将输入读入一个字符[],因此,无需扫描,您只需执行GET或类似操作,然后自己逐个数字检查值,使用isdigit。

33.3将被读取为整数33。返回的scanf将告诉您是否成功。在stackoverflow上发布此信息之前,您似乎没有在google上进行过搜索……请在询问之前做一些背景信息