关于switch语句。我不知道哪里错了,大侠帮忙bug一下
#include <stdio.h>
int main()
{
int a;
char b;
do{
printf("1.Chinese.\n");
printf("2.English.\n");
printf("your choose is:");
scanf("%d",&a);
switch(a)
{
case 1 : printf("hi!\n"); break;
case 2 : printf("hello!\n"); break;
default : printf("error!\n");
}
printf("exit:x\n");
scanf("%c",&b); //不知道为什么这一句总是不执行
}while(b!='x');
return 0;
}
[解决办法]
# include<stdio.h>
int main()
{
int a;
char b;
do{
printf("1.Chinese.\n");
printf("2.English.\n");
printf("your choose is:");
scanf("%d",&a);
switch(a)
{
case 1:printf("hi!\n"); break;
case 2:printf("hello!\n"); break;
default:printf("error!\n");
}
printf("exit:x\n");
getchar();//在这里加个getchar();就可以了!
scanf("%c",&b);//不知道为什么这一句总是不执行
}while(b!='x');
return 0;
}
因为缓冲区被上面的字符占有了,虽有这里清楚下缓冲区就可以了!