【问题标题】:Checking if input is an integer in C [duplicate]检查输入是否是C中的整数[重复]
【发布时间】:2017-10-30 23:07:51
【问题描述】:

我正在尝试检查一个数字是否为整数 (num)。

在 main() -

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。

程序的其余部分有效。只是被这件小事卡住了。

【问题讨论】:

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

标签: c debugging


【解决方案1】:

您需要将输入读入char[],(因此,不需要scanf(),您可以执行gets() 或类似的操作,)然后自己逐位检查值,使用isdigit()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-20
    • 2014-11-29
    • 2011-05-03
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    相关资源
    最近更新 更多