c语言,为什么输入一次会输出多次,萌新求解答,要怎么才能得到题目要求,拜托,题目如图,代码如下
voidPAN_PrintMenu(void);intmain(intargc,char**argv){charCommandLetter;intx;x=1;while(...
void PAN_PrintMenu( void );int main(int argc, char** argv) { char CommandLetter; int x; x=1;while(x){ PAN_PrintMenu(); CommandLetter = getchar(); if ( CommandLetter >= 'A' && CommandLetter <= 'Z'){ CommandLetter = CommandLetter + ('a' - 'A'); } if ( CommandLetter == 'a' ) printf("[A] 新增\n"); else if ( CommandLetter == 'b' ) printf("[B] 修改\n"); else if ( CommandLetter == 'c' ) printf("[C] 删除\n"); else if ( CommandLetter == 'd' ) printf("[D] 显示所有学生信息\n"); else if ( CommandLetter == 'e' ) printf("[E] 按学号查询学生信息\n"); else if ( CommandLetter == 'f' ) printf("[F] 按姓名查询学生信息\n"); else if ( CommandLetter == 'g' ) printf("[G] 查询身高在某区间的学生\n"); else if ( CommandLetter == 'h' ) printf("[H] 查询所有男生信息\n"); else if ( CommandLetter == 'i' ) printf("[I] 查询所有女生信息\n"); else printf("输入错误!\n"); if ( CommandLetter == 'x' ) printf("*****谢谢使用本程序****\n\n");}} void PAN_PrintMenu( void ){ printf("************************************************\n"); printf(" 欢迎使用<学生信息管理系统>\n"); printf("作者:XXXX Email 版权所有\n"); printf("************************************************\n"); printf("[A] 新增\n"); printf("[B] 修改\n"); printf("[C] 删除\n"); printf("[D] 显示所有学生信息\n"); printf("[E] 按学号查询学生信息\n"); printf("[F] 按姓名查询学生信息\n"); printf("[G] 查询身高在某区间的学生\n"); printf("[H] 查询所有男生信息\n"); printf("[I] 查询所有女生信息\n"); printf("[X] 退出\n"); printf("************************************************\n"); printf("请输入要执行的功能前的字母(不区分大小写):");}
展开
2个回答
展开全部
在CommandLetter = getchar();前加一句fflush(stdin);。
追问
不能这样用,还没学
追答
你把那一句拷贝过去都不会?或者你就等着学了再说吧!可以换成在CommandLetter = getchar();后加一句getchar();,但就只能满足大部分情况,不是100%地凑效了……还有个好办法就是把CommandLetter = getchar();换成scanf(" %c",&CommandLetter);——注意%前必须有个空格——这个不知你学了没有。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询