选择菜单问题

疾似云流 2007-06-15 05:15:03
C++初学者,希望大家多多指教!
做了一个简单的菜单,但是如果输入第一个选择后(不回车),加一个空格,再随便输入字符或者数字的时候就会跳到下一步去了!怎样才能避免这种情况呢???
如下:
int main()
{

cout << " 1, ..... " << endl;
cout << " 2, ..... " << endl;
cout << " 3, ..... " << endl;

//省略号代表要执行的功能。
//然后我定义一个字符数组来存储选择的值,

cout << "Enter option: ";
char option[32];
cin >> option;

//再用一个strcmp函数来判断

if (strcmp(option,"1") == 0)
{
......; //执行语句
}

......

}

这样虽然能够避免输入多个字符或者数字,
但是加了一个空格后就与原来的愿望背道而驰了......

怎么做才能避免加了空格也能判断呢???





...全文
150 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
purplecalm 2007-06-15
  • 打赏
  • 举报
回复
char ch=getch();
purplecalm 2007-06-15
  • 打赏
  • 举报
回复
use getch();
wf520pb 2007-06-15
  • 打赏
  • 举报
回复
用cinInt来输入整数可以很好的控制输入的正确.
返回真表示输入正确,否则输入格式错误。
wf520pb 2007-06-15
  • 打赏
  • 举报
回复
bool cinInt(int &num)
{
cin>>num;
char pk;
if(cin.rdstate()==ios_base::goodbit&&(cin.eof()||(pk=cin.peek())=='\r'||cin.putback(pk),cin.peek()=='\n'))
{
cin.sync();
return true;
}
else
{
cout<<"输入格式有误,请重新输入!(请输入数字)"<<endl;
cin.clear();
cin.sync();
return false;
}
}
void main()
{
int a;
while(!cinInt(a)){}
cout<<a<<endl;
}
banzhiyu 2007-06-15
  • 打赏
  • 举报
回复
to chris17chen()
但是用string定义的option不能用cin来输入啊,
这个问题又该怎么解决呢???

-------------------------------------------
不可以吗?
疾似云流 2007-06-15
  • 打赏
  • 举报
回复
但是用string定义的option不能用cin来输入啊,
这个问题又该怎么解决呢???
sms88 2007-06-15
  • 打赏
  • 举报
回复
那就把option定义为整型
taodm 2007-06-15
  • 打赏
  • 举报
回复
当然是优先考虑
int option;
cin >> option;
如果一定要char option[32];当然是先去掉空格。
另外,应该用stirng option;取代那个char数组。

65,210

社区成员

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

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