C 输入输出错误
我需要加两个数字。这里的限制是,我还必须检查输入是否不是字母表。我已经使用isdigit()函数来检查这一点。但当我运行代码时,即使输入是number,它也会执行else块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
#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();
}