#include <stdio.h>
int main()
{
int b=1;
char a;
while (b)
{
printf("what happen\n");
scanf_s("%c", &a,1);
switch (a)
{
case 'A':printf("aaa"); break;
case 'B':printf("sss"); break;
case'C':printf("ddd"); b = 0; break;
}
}
}
在这个代码中第一次输入a的值正常,但在while循环到第二次时无法输入a的值
用断点去查看发现第二次a的值自动变为‘\n’
有没有大佬教一下
因为你获取的是字符,第一次你控制台输入字符,然后按“回车”,这是编译器就把回车符号获取到下一次的scanf里面了。你可以scanf();后面跟一个getchar(); 就行,它把回车获取了,你就正常获取字符了。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632