求助:选择语句怎样才能不读入回车符
例如这句代码,要输入a和一个回车才能执行switch,而这个回车符对以后的选择会有影响,怎样才能直接输入一个字符而不用回车即可执行?while(1)
{
ch=getchar();
switch(ch)
{
case 'a':
case 'A': a_function();break;
case 'b':
case 'B': b_function();break;
case 'c':
case 'C': c_function();break;
case 'd':
case 'D': d_function();break;
case 'e':
case 'E': e_function();break;
case 'f':
case 'F': f_function();break;
case 'q':
case 'Q': exit(0);break;
----------------解决方案--------------------------------------------------------
没人知道吗?
----------------解决方案--------------------------------------------------------
救命呀!!!
----------------解决方案--------------------------------------------------------
清空缓冲区 fflush(stdin) 或者把接受写到循环外面 我着是对你问的回答...你的程序 有点小汗..
----------------解决方案--------------------------------------------------------
回复 4# yd4433 的帖子
清空缓冲区--怎样清空?把接受写到循环外面 ????
有点小汗--->有很多程序都可以这样啊
----------------解决方案--------------------------------------------------------
清空缓冲区 fflush(stdin) 写在ch=getchar();下面
----------------解决方案--------------------------------------------------------
改为
while('\n' != (ch = getchar()))
{
switch()
...
}
另外to 4#
LZ这个按键处理比较正常,没看到什么奇怪的地方。
不过最好加上default,来处理那些没有定义的按键。
----------------解决方案--------------------------------------------------------
[bo][un]yd4433[/un] 在 2008-6-1 22:33 的发言:[/bo]
清空缓冲区 fflush(stdin) 写在ch=getchar();下面
清空缓冲区 fflush(stdin) 写在ch=getchar();下面
这样不行,都清空了就没法处理了。
----------------解决方案--------------------------------------------------------
那就写在最下面 . .
----------------解决方案--------------------------------------------------------
[bo][un]yjcf[/un] 在 2008-6-1 20:25 的发言:[/bo]
怎样才能直接输入一个字符而不用回车即可执行?
...
怎样才能直接输入一个字符而不用回车即可执行?
...
这个可以用键盘中断。bioskey();
----------------解决方案--------------------------------------------------------