#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 :
如果这是我的代码,它会将第一个字符放入变量“a”中,然后如果我按回车键,变量“b”会将回车作为其输入。如何克服这个问题?
在C语言中所有的输入操作都是借助ASCII码完成的。 Enter 键有 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;
}
输出:
Enter a : Enter b : Enter c : Enter d :
print a - m
print b - n
print c - 0
print d - p