如何验证用户输入?

时间:2010-08-11 13:38:16

标签: c validation

在下面编写的程序中,我如何确保只输入整数值? 如果输入字符,程序应将其转换为ASCII等效项,然后添加它们并将输出显示为数字。 请帮帮我......

#include<stdio.h>
int main(int argc, char **argv)
{
 int a,b,c;
 printf("enter two numbers:-");
 scanf("%d \t %d",&a,&b);
 c=a+b;
 printf("addition of numbers= %d",c);
}

2 个答案:

答案 0 :(得分:2)

scanf返回它成功读取的项目数,因此您可以检查以确保它返回您期望的相同数字。例如,

if (scanf("%d \t %d", &a, &b) != 2)
{
    // handle error
}

请注意\t是一个空格字符,scanf会忽略空格。

答案 1 :(得分:1)

只是补充詹姆斯所说的话。

别忘了刷新标准输入

#include<stdio.h>
int main(int argc, char **argv)
{
 int a,b,c;

 printf("enter two numbers:-");
 if( scanf("%d \t %d",&a,&b)  == 2 )
 {
    c=a+b;
     printf("addition of numbers= %d",c);
 }
 else {
        printf("please enter a valid input");
        getchar(); // the getchar will clear the stdin otherwise next time you go do 
                   // a scanf it might not work. 
    }
}