按任意键返回主菜单为什么不行

weixin_45679098 2019-12-31 10:08:06
...全文
542 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_1457346882 2019-12-31
  • 打赏
  • 举报
回复
引用 3 楼 weixin_45679098 的回复:
还是不行,按任意键之后它也没有返回主菜单。比如任意按一个数字它只显示那个数字,此时如果再按回车键它就退出来了

看到你这是if(a!='\n')前面getchar获取字符获取的是'\n'那么就进不去这个if语句了吧?也就没有获取下一个键了,这时候你再输回车是while的了,switch不会进,也不等于‘0’
棉猴 2019-12-31
  • 打赏
  • 举报
回复
请参考这个程序
#include<stdio.h>

int main()
{
char ch1, ch2, a;
ch1 = 'y';
while (ch1 == 'y' || ch1 == 'Y')
{
printf("我是菜单.");
printf("\n按回车键继续,按任意键返回主菜单!\n");
a = getchar();
if (a != '\xA')
{
getchar();
ch1 = 'y';
continue;
}
ch1 = 'n';
}
printf("程序继续!\n");
return 0;
}

VS2015 C++环境调试
weixin_45679098 2019-12-31
  • 打赏
  • 举报
回复
我把ch1='y'||'Y'改成ch1=='y'||'Y'就可以了
柒贰伍玖 2019-12-31
  • 打赏
  • 举报
回复
引用 3 楼 weixin_45679098 的回复:
还是不行,按任意键之后它也没有返回主菜单。比如任意按一个数字它只显示那个数字,此时如果再按回车键它就退出来了
你的程序有没有 跑到提示“按回车键继续,按任意键返回主菜单 ”这行代码
weixin_45679098 2019-12-31
  • 打赏
  • 举报
回复
还是不行,按任意键之后它也没有返回主菜单。比如任意按一个数字它只显示那个数字,此时如果再按回车键它就退出来了
柒贰伍玖 2019-12-31
  • 打赏
  • 举报
回复
你的while 判断是 ch1 == 'y' || ch1 == 'Y' 而你最后赋值 ch1 = 'n' 这两个地方对不上 退出循环了 ch1 = 'n'; 改成 ch1 = 'y' 或者 ch1 = 'Y'
qq_1457346882 2019-12-31
  • 打赏
  • 举报
回复
不知道你的主菜单指的是什么,如果是while下的menu,那你ch1应该等于y/Y,这样才满足判断条件

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧