C语言 关于用ESC实现返回主菜单的

[复制链接]
查看11 | 回复2 | 2008-12-3 17:03:14 | 显示全部楼层 |阅读模式
搜索到前人的这个提问,结果答案是错的,希望高人改正,谢谢了
fun()
{
char ch;
do
{
printf("请输按任一键\n");
ch=getch();
}
while(ch!=27)//如果输入的为ESE键则返回主函数
return;
}
发现到倒数第2行时还能执行,ESC的ASCII码为27,可是运行程序的结果时按除ESC的键外一直printf请输按任一键,而按ESC直接提示退出程序了。。。是RETURN的用法错了吗?我不会用RETURN,希望指点一下。

回复

使用道具 举报

千问 | 2008-12-3 17:03:14 | 显示全部楼层
由于输入字符比较奇怪,以你这个为例,当你输入以个字符后,回车,不是ESE键,这时回车会下一个getch()。有点麻烦。根据这点,你可以在printf("请输按任一键\n");ch=getch(); 后面再加依据getchar();就行了。也就是do{printf("请输按任一键\n");ch=getch();getchar();//不要以为要输入两次,其实调试时你回发现只需输入一次}while(ch!=27)...
回复

使用道具 举报

千问 | 2008-12-3 17:03:14 | 显示全部楼层
这个程序本来就是这样的结果啊...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行