首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于输入输出的小疑点

2012-05-31 
关于输入输出的小问题#includestdio.hvoid main(){char cprintf(ce shi xun huan\n)do{scanf(%c,&

关于输入输出的小问题
#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)


[解决办法]

C/C++ code
#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');} 

热点排行
Bad Request.