#include<stdio.h>
int main()
{
printf("Enter a : ");
scanf("%c",&a);
printf("Enter b : ");
scanf("%c",&b);
printf("Enter c : ");
scanf("%c",&c);
printf("Enter d : ");
scanf("%c",&c);
}
输出:
C:\Users\Saran\Desktop>gcc new.c
C:\Users\Saran\Desktop>a
Enter a : s
Enter b : Enter c : c
Enter d :
如果这是我的代码,它会将第一个char变为变量&#39; a&#39;然后,如果我按下输入变量&#39; b&#39;将输入作为输入。如何克服这个问题?
答案 0 :(得分:0)
在C语言中,所有输入操作都是在ASCII代码的帮助下完成的。 输入键具有ASCII码10
,当您按 Enter 键,然后scanf("%c",&b)
将其转换为ASCII并存储10
。您可以通过打印printf("%d",b)
来查看。
在您的情况下,您可以使用替代输入字符串getchar()
来处理 Enter ,如
int main() {
char a,b,c,d;
printf("Enter a : ");
scanf("%c",&a);
getchar();
printf("Enter b : ");
scanf("%c",&b);
getchar();
printf("Enter c : ");
scanf("%c",&c);
getchar();
printf("Enter d : ");
scanf("%c",&d);
printf("\n print a - %c ",a);
printf("\n print b - %c ",b);
printf("\n print c - %c ",c);
printf("\n print d - %c",d);
return 0;
}
输出:
输入a:输入b:输入c:输入d:
打印a - m
打印b - n
打印c - 0
打印d - p