很基础的问题,希望大家多帮忙哦!

uglybetty9876 2009-06-08 10:10:04
#include <iostream>
struct bop{
char fullname[100]; //real name
char title[100]; //job title
char bopname[100]; //secret bop name
int preference; //0=fullname,1=job title,2=bopname
};
main()
{using namespace std;
char ch;
cout<<"Bene volent Order of Programmers Report"<<endl;
cout<<"a.display by name b.diaplay by title"<<endl;
cout<<"c.display by bopname d.diaplay by preference"<<endl;
cout<<"q.quit"<<endl;
cout<<"Enter your choice:";
cin.get(ch);
while((ch)!='Q'&&(ch)!='q')
{ switch(ch)
{case 'a': cout<<"Wimp Macho"<<endl<<"Raki Rhodes"<<endl<<"Celia Laiter"<<endl;
cout<<"Hoppy Hipman"<<endl<<"Pat Had"<<endl;
break;
case 'b': cout<<"student"<<endl<<"Junior Programmer"<<endl<<"docter"<<endl;
cout<<"Analyst"<<endl<<"boss"<<endl;
break;
case 'c': cout<<"Love"<<endl<<"Bud"<<endl<<"MIPS"<<endl;
cout<<"Flower"<<endl<<"LOOPY"<<endl;
break;
case 'd': cout<<"Wimp Macho"<<endl<<"Junior Programmer"<<endl<<"MIPS"<<endl;
cout<<"Analyst"<<endl<<"LOOPY"<<endl;
break;
default: break;
}

cout<<"Next choice:";
cin.get(ch);
}
if(ch=='Q'||ch=='q') cout<<"Bye!"<<endl;
return 0;
}
我的运行结果是:

Bene volent Order of Programmers Report
a.display by name b.diaplay by title
c.display by bopname d.diaplay by preference
q.quit
Enter your choice:a
Wimp Macho
Raki Rhodes
Celia Laiter
Hoppy Hipman
Pat Had
Next choice:Next choice:

为什么我的Next choice:出现两次啊?
...全文
59 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ican008 2009-06-08
  • 打赏
  • 举报
回复
编译正常啊
  • 打赏
  • 举报
回复
编译正常
  • 打赏
  • 举报
回复
编译正常
  • 打赏
  • 举报
回复
编译正常
majun01 2009-06-08
  • 打赏
  • 举报
回复
#include <iostream> 
struct bop{
char fullname[100]; //real name
char title[100]; //job title
char bopname[100]; //secret bop name
int preference; //0=fullname,1=job title,2=bopname
};
main()
{
using namespace std;
char ch;
cout<<"Bene volent Order of Programmers Report"<<endl;
cout<<"a.display by name b.diaplay by title" <<endl;
cout <<"c.display by bopname d.diaplay by preference" <<endl;
cout <<"q.quit" <<endl;
cout <<"Enter your choice:";
cin.get(ch);
while((ch)!='Q'&&(ch)!='q')
{
switch(ch)
{
case 'a': cout <<"Wimp Macho" <<endl <<"Raki Rhodes" <<endl <<"Celia Laiter" <<endl;
cout <<"Hoppy Hipman" <<endl <<"Pat Had" <<endl;
break;
case 'b': cout <<"student" <<endl <<"Junior Programmer" <<endl <<"docter" <<endl;
cout <<"Analyst" <<endl <<"boss" <<endl;
break;
case 'c': cout <<"Love" <<endl <<"Bud" <<endl <<"MIPS" <<endl;
cout <<"Flower" <<endl <<"LOOPY" <<endl;
break;
case 'd': cout <<"Wimp Macho" <<endl <<"Junior Programmer" <<endl <<"MIPS" <<endl;
cout <<"Analyst" <<endl <<"LOOPY" <<endl;
break;
default: break;
}

fflush(stdin); ///加上这一句就没问题了。

cout <<"Next choice:";
cin.get(ch);
}
if(ch=='Q'||ch=='q') cout <<"Bye!" <<endl;
return 0;
}
光宇广贞 2009-06-08
  • 打赏
  • 举报
回复
你是VC6吧……如是,那就别怪谁了,怪自己吧
pengzhixi 2009-06-08
  • 打赏
  • 举报
回复
我这正常,dev-cpp
uglybetty9876 2009-06-08
  • 打赏
  • 举报
回复
呵呵...
不管怎么说,谢谢你了!
指出了我的毛病所在!
uglybetty9876 2009-06-08
  • 打赏
  • 举报
回复
谢谢你啊!感觉你很认真的看我的问题了!
就给你多点分吧!

我是个初学者,菜鸟一个!
还是不明白,
为什么加上那一句就好了呢?
我是在VC++6.0下编译的。
希望高手解答哦!
(*^__^*)...嘻嘻
MMMoonriver 2009-06-08
  • 打赏
  • 举报
回复
顶3楼,
qq6287976 2009-06-08
  • 打赏
  • 举报
回复
这个问题是由循环体里的get.cin(ch)引起的 至于为什么 我也不知道 用cin>>ch;就正常了
等高人解答 为什么

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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