关于输入输出的小问题
#include<stdio.h>
void main()
{
char c;
printf("ce shi xun huan\n");
do
{
scanf("%c",&c);
switch(c)
{
case 'a':printf("The input is a\n");break;
case 'b':printf("The input is b\n");break;
case 'c':printf("The input is c\n");break;
case 'd':printf("The input is d\n");break;
case 'q':break;
default: printf("The input is error\n");break;
}
}while(c!='q');
}
为什么输出总是伴随着default的执行,;例如输入a,输出是The input is a The input is error
换成while型也是这样,
但是把判断变量c改成整形却能得到正确的输出The input is a,
希望有高手能够解答为什么会得到这样的输出,怎样解决能够详细讲一下(我用的是TC3.0)
[解决办法]
#include<stdio.h>void main(){ char c; printf("ce shi xun huan\n"); do { scanf("%c",&c); if (c == '\n') { continue; } switch(c) { case 'a':printf("The input is a\n");break; case 'b':printf("The input is b\n");break; case 'c':printf("The input is c\n");break; case 'd':printf("The input is d\n");break; case 'q':break; default: printf("The input is error\n");break; } }while(c!='q');}