当前位置: 代码迷 >> C语言 >> case输出问题~
  详细解决方案

case输出问题~

热度:348   发布时间:2007-11-30 18:23:11.0
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]]
搜索更多相关的解决方案: case  输出  int  main  char  

----------------解决方案--------------------------------------------------------
你的问题好像没有给全, 你没有输入的数据, 即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行


恩啊,有道理
----------------解决方案--------------------------------------------------------
在printf(); 后面加上break;
在结束加上default:.....
----------------解决方案--------------------------------------------------------
  相关解决方案