问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言中菜单里switch语句里形成循环输入的问题(求高人解答)

发布网友 发布时间:2022-05-21 09:15

我来回答

5个回答

热心网友 时间:2023-10-21 23:24

我感觉错误是在你在error()中调用了menu()方法,这样会构成一个递归。建议的程序结构如下:
http://blog.csdn.net/nuaazdh/article/details/7058558;
这是典型的提示菜单响应程序。

建议这样改:
scanf("%d",&n);
while(d!=0){
switch(n)
{
case 1:luru();break;
case 2:liulan();break;
case 3:chaxun();break;
case 4:paixu();break;
case 5:xiugai();break;
default:
printf("无效选择,按任意键返回主菜单");
system("pause>nul");
system("cls");

}//switch
scanf("%d",&n);
}//end of while

热心网友 时间:2023-10-21 23:25

嘿嘿, 你不妨在你的程序中调试一下看看, 其实当从error调用menu的时候n好像被前面的东西赋值了吧

你可以采用一种方式就是在error函数中添加如下代码就解决问题
char tmp;
while ((tmp=getchar()) != '\n')
{
continue;
}

热心网友 时间:2023-10-21 23:25

很明显是因为你这个error函数中又调用了一次menu()。

把error函数改成

void error(void)
{
printf("无效选择,按任意键返回主菜单");
system("pause>nul");
system("cls");

}

热心网友 时间:2023-10-21 23:26

把scanf换成getch(),其作用是从键盘读入一个字符(不用按回车),注意要包含头文件<conio.h>

热心网友 时间:2023-10-21 23:26

scanf("%d",&n); 后加一个getchar();就可以解决了追问试过,输入2个字符时有用,这样接收了一个字符,但是输入3个字符时,还是会再多循环一次,更不用说输入多个字符了,我是想实现不管乱输入什么都能直接跳到主菜单继续开始

追答scanf("%d",&n); 这句改成如下语句:
do
{
int ret= scanf( "%d" , &n );
if ( ret == 1 )
break ;
getchar();
} while ( 1 );

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... switch是循环语句吗 媒体答谢会的介绍 逐光之路,美好同行丨金樾公馆媒体答谢会圆满落幕 为什么母亲的教育方式很重要? 教育孩子方法很重要,为何转变教育观念更刻不容缓? 公积金贷款怎么查 中国古代教育方法的现实意义 父母教育方式的重要性 “三分教七分等”教育方法很重要,有哪些益处? 公积金贷款贷款银行怎么查 正确的教育方式对小孩的重要性,都有哪些? 教育方式重要吗?一个好的教育方式对孩子们有什么影响? 教育方式的重要性有哪些呢?你有什么看法? 不同的域名怎么解析到一个网站文件 多个域名解析到一个服务器下的不同网站上,怎么解析? 怎样把域名解析到iis网站上 公证处公证收费 电容在使用时,电容值大小有什么区别 怎么分清电容的大小,电压相同微法越大电容越大吗? 安规电容有分功率大小吗? 哪款卸妆水好呀 好用的卸妆水排行榜 丈夫出轨妻子怎么办 要正确面对和处理丈夫的出轨 QQ,微信没声音什么原因 手机提示音不知道怎么突然不响了,闹铃,来电一切正常,只有QQ微信, 为什么QQ和别的微信没有提示? 家庭教育方法的重要性 字谜:半个月亮 古汉语努力学习怎么说? 表示勤奋学习的名言,用两个字来表示? 没多大进步,继续努力!的古语怎么说? 关于努力就会成功的名言。句中有“努力”二字 努力学习用文言文怎么说 一起努力用古文怎么说 用文言文叫儿子努力学习怎么说? 执着努力的精神用文言文怎么说 只要努力奋斗,总有一天会成功用文言文怎么说 衡水老白干-新瓷67度 那酒四瓶礼盒装,多钱啊? 衡水老白干67度一箱4瓶的多少钱 我这么努力的付出,结果什么都没得到,用古语怎么说? 新67度vo1衡水老白干一提四瓶多少钱