为什么不使用scanf(C语言)扫描我的角色

为什么不使用scanf(C语言)扫描我的角色,c,scanf,C,Scanf,在下面的代码中,我的角色未存储在角色中。。。有人能告诉我怎么了吗 char z; printf("A or B ?\n "); scanf("%c",&z); printf("%c",z); 读取通缉字符之前的另一个dumy字符: char dumy; scanf("%c%c",&dumy,&z); 实际上,您可以使用%*c不扫描该字符,因此不需要其他变量;scanf(“%c,%c”,&dummy,&z);printf(“%c\n”,z);但打印的符号不是我键入的:

在下面的代码中,我的角色未存储在角色中。。。有人能告诉我怎么了吗

char z;
printf("A  or B ?\n ");
scanf("%c",&z);
printf("%c",z);

读取通缉字符之前的另一个dumy字符:

char dumy;
scanf("%c%c",&dumy,&z);

实际上,您可以使用
%*c
不扫描该字符,因此不需要其他变量;scanf(“%c,%c”,&dummy,&z);printf(“%c\n”,z);但打印的符号不是我键入的:╠"@user1592784:在scanf语句中没有
%c
)是否包含
#include
?printf(“%c”,z);的输出是什么??能否在
printf(…)
之后再放一个
scanf(…)
?它对我有效(当我将它包装在主程序中并添加
#include
)。我运行程序并键入
A
,然后按Enter键;它将打印
A
。由于缺少换行符,您可能会丢失输出;请尝试将
printf(“%c”,z”);
更改为
printf(“%c\n”,z)
@user1592784:在这之前有没有接受输入的代码?如果是这样的话,
stdin
中可能还有一些你还没有读过的垃圾(比如
'\n'
)在你有机会输入任何输入(你在下面回答的注释中说的)之前就被存储在
z
中了。
printf(“%x”,z)是什么意思
output?printf(“A或B?\n”);scanf(“%c,%c”&虚拟,&z);printf(“%c\n”,z);-->”╠printf(“%x\n”,z);-->“ffffff cc”