c-开关总是在while循环中默认运行


#include<stdio.h>
int main()
{
char a;
do {
printf("n enter letter a,b or c: ");
scanf("%c", &a);
switch (a)
{
case  'a' :
printf("n one n");
break;
case  'b' :
printf("n two n");
break;
case  'c' :
printf("n three n");
break;
default:
printf("n invalid input n");
break;
}
}while(a != 'd');
}

即使出现中断,此代码也始终默认运行;

但是如果你将%c替换为%s,它正常工作,我只想了解为什么使用%c会这样做,或者有没有其他方法可以使它与使用%c 完美运行

使用a=getch((也可以,但我想在不使用printf显示的情况下显示输入

使用scanf时,需要按字母a/b/c后面的回车键才能发送输入。%c将您的输入解释为两个字符。一个代表您输入的实际字母,另一个代表回车键。正是这个回车键字符通过了"default"大小写。当你使用getch((时,一切都很好,因为你没有按回车键

相关内容

  • 没有找到相关文章

最新更新