C 输入输出错误

C 输入输出错误,c,C,我需要加两个数字。这里的限制是,我还必须检查输入是否不是字母表。我已经使用isdigit()函数来检查这一点。但当我运行代码时,即使输入是number,它也会执行else块 #include<stdio.h> #include<conio.h> #include<ctype.h> void main() { int a,b,c; clrscr(); scanf("%d\n",&a); scanf("%d",&b); c=a+b; if(isdi

我需要加两个数字。这里的限制是,我还必须检查输入是否不是字母表。我已经使用isdigit()函数来检查这一点。但当我运行代码时,即使输入是number,它也会执行else块

#include<stdio.h>
#include<conio.h>
#include<ctype.h>
void main()
{
int a,b,c;
clrscr();
scanf("%d\n",&a);
scanf("%d",&b);
c=a+b;
if(isdigit(a) && isdigit(b))
{
printf("%d",c);
printf("\n");
}
else
{
printf("Inavild Output");
}
getch();
}
#包括
#包括
#包括
void main()
{
INTA、b、c;
clrsc();
scanf(“%d\n”、&a);
scanf(“%d”和“b”);
c=a+b;
国际单项体育联合会(国际单项体育联合会(a)和国际单项体育联合会(b))
{
printf(“%d”,c);
printf(“\n”);
}
其他的
{
printf(“不文明输出”);
}
getch();
}

函数
isdigit
需要字符的整数表示(它是ascii值)。您给出的是实整数值,在检查ascii表时,其值可能不是数字。

首先,如果要从用户处获取输入,则需要使用char或string变量。这更清楚。比如:

char input_a;
char input_b;
其次,如果您想要的是添加数字的结果,而不是添加字符的Ascii表示,则不能直接添加字符值。因此,在确保输入_a和输入_b实际上是数字之后,需要完成行c=a+b

第三,您需要将input_a和input_b转换为它们所表示的值。因此,您的“if”如下所示(注意,有许多方法可以将char转换为int):

int-isdigit(int参数)
将整型参数作为参数,并检查 如果参数是数字,则返回
1(true)
if 参数不是数字,然后返回
0(false)

如果将
int a=65
传递给函数,它会将值转换为 它是等效值并返回结果
false(0)
。因为
65
相当于
'A'
'A'
不是数字

您可以这样检查。
如果(scanf(“%d”,&a)==1&&scanf(“%d”,&b)==1)
。如果输入是数字,则计算并打印结果。如果输入不是数字,则将在原始输出中打印。

#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
clrscr();
if(scanf("%d",&a) == 1 && scanf("%d",&b) == 1) //if numbers read condition will be true
{
    c=a+b;
    printf("%d",c);
    printf("\n");
}
else
{
    printf("Inavild Output");
}
getch();
}
#包括
#包括
void main()
{
INTA、b、c;
clrsc();
if(scanf(“%d”,&a)==1&&scanf(“%d”,&b)==1)//如果数字读取条件为真
{
c=a+b;
printf(“%d”,c);
printf(“\n”);
}
其他的
{
printf(“不文明输出”);
}
getch();
}

请注意按Tab/在编辑器中启用自动缩进。@Anidh Singh您必须将数据读取为字符串,然后尝试将其转换为数字。您的程序的当前版本没有意义。:)您需要检查scanf以查看有多少项被转换。由于没有检查,您无法知道任何输入都不是整数。请比较
isdigit(1)
isdigit('1')
@vladfrommosco的值,我该怎么做?
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c;
clrscr();
if(scanf("%d",&a) == 1 && scanf("%d",&b) == 1) //if numbers read condition will be true
{
    c=a+b;
    printf("%d",c);
    printf("\n");
}
else
{
    printf("Inavild Output");
}
getch();
}