标准数字输入使用c中的if else命令

时间:2010-11-28 15:55:22

标签: c

当程序询问输入时如何严格要求用户输入数字或者如何在条目上应用数字输入可以帮助我。

作为一个例外:

#include "stdio.h"
#include "conio.h"
  void main()
     {
        int x;
        printf("Enter a numeric value:");
        scanf("%d",&x);

        if(..........)    // here i supose to write the if statement  
}

6 个答案:

答案 0 :(得分:2)

scanf返回成功处理的参数数量,因此您需要存储其返回值并对其进行测试。

因此,您可以改为if (scanf("%d", &x)) { ... } else {... },因为scanf将返回0(未匹配整数)或1(如果匹配整数)

修改

if (scanf("%d", &x)) {
    /* an integer was read into x, so what do you want to do here? */
} else {
    /* what the user typed was not an integer, so normally you want to write some error message or something */
}

答案 1 :(得分:0)

您应该收到用户输入的整行,然后使用isdigit()(在ctype.h中定义)检查每个字符是否为数字。

答案 2 :(得分:0)

我建议你在这里查看: http://www.tek-tips.com/viewthread.cfm?qid=1024751&page=10

有趣的是,这也是谷歌的第一个结果。

此外,停止使用void main()。这是限制性的。

答案 3 :(得分:0)

另外,考虑在无限循环中输入输入,并在用户输入正确的输入时将其输出。

答案 4 :(得分:0)

答案 5 :(得分:0)

如果您希望用户的输入满足某个条件,您可以执行以下操作:

#include <stdio.h>

int main()
{
    int x;
    printf("Enter a numeric value:");

    scanf("%d", &x);

    //suppose you want the user to enter values b/w 0 and 999
    while ((x < 0) || (x >= 1000)) {
        scanf("%d", &x);
    }
}

请注意,void mainconio.h不符合标准。