case输出问题~
main(){char k;
int i;
for(i=1;i<3;i++)
{scanf("%c",&k);
switch(k)
{case '0':printf("another\n");
case '1':printf("number\n");
}
}
getch();
}
为什么会输出这样的结果~
输入01(回车)
another
number
number
是我疏忽了~
[[italic] 本帖最后由 chump345 于 2007-11-30 18:42 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
你的问题好像没有给全, 你没有输入的数据, 即k变量的值没有给出
----------------解决方案--------------------------------------------------------
你的程序是要干什么的
----------------解决方案--------------------------------------------------------
是我没弄好!现在改好了~
----------------解决方案--------------------------------------------------------
回复 1# 的帖子
在case '0':printf("another\n");后加上break应该就对了 ----------------解决方案--------------------------------------------------------
不是我程序对不对的问题~
输入的既然是 01(回车)
那么那么程序只读 0
就只应该输出
another
number
但是输入01后就只能输入一次就退出来了~
并且输出
another
number
number
----------------解决方案--------------------------------------------------------
你输入的是01,这两个字符先放入缓冲区,然后第一次只读0,输出两行,第二次发现缓冲区里面还有东西,就不让你输入了,直接读取缓冲区里面的1,输出1行
----------------解决方案--------------------------------------------------------
原来缓存区是这么用的~
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]永夜的极光[/underline][/bold] 于 2007-11-30 19:25 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1124684&ptid=189581][/url]
你输入的是01,这两个字符先放入缓冲区,然后第一次只读0,输出两行,第二次发现缓冲区里面还有东西,就不让你输入了,直接读取缓冲区里面的1,输出1行
你输入的是01,这两个字符先放入缓冲区,然后第一次只读0,输出两行,第二次发现缓冲区里面还有东西,就不让你输入了,直接读取缓冲区里面的1,输出1行
恩啊,有道理
----------------解决方案--------------------------------------------------------
在printf(); 后面加上break;
在结束加上default:.....
----------------解决方案--------------------------------------------------------