| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1457 人关注过本帖
标题:请教关于输入异常的问题
只看楼主 加入收藏
知白守黑
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-12-12
结帖率:66.67%
收藏
 问题点数:0 回复次数:4 
请教关于输入异常的问题
int order = -1;
 while(order < 0 || order > 5) {/*想读入一个1-5之间的值,但如果输入字符传就会死循环;如下处理只能退出系统,能不能让程序能继续正常运行??*/
  cout << "\n\t\t\t   请选择操作代码:";
  cin >> order;
  if(cin.fail()) {
   exit(0);
  }
 }
百度的是把order改成char类型,但是我想问下还有没其他方法??
搜索更多相关主题的帖子: 百度 
2017-01-02 13:44
知白守黑
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-12-12
收藏
得分:0 
void Employee::employeeInsert(){//插入员工记录
jd *p=new jd();   
cout<<"请输入证件号:";
cin>>p->id;
cout<<"请输入姓名:";
cin>>p->name;
if(!slink.linkFind(p->id)){//判断证件号是否存在
 slink.linkInsert(p);
k=true;
}
else
cout<<"证件号"<<p->id<<"的员工已存在,插入失败!"<<endl;

 cout<<"请输入部门:";
 cin>>p->bumen;
 cout<<"基础薪水:";
 cin>>p->jcsalary;
 cout<<"奖金:";
 cin>>p->jiangjin;
 //if(cin.fail)cout<<"输入错误,请重新输入"<<endl;exit(0);
 cout<<endl;
//这是我的部分程序,奖金是定义成INT类型的
2017-01-02 13:51
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
c的话就是加fflush(stdin),c++我还没学,不知具体语法~找到和此功能相同的就行了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-02 15:21
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
回复 楼主 知白守黑
关键是你要把order定义成char型。
2017-01-02 20:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    int order;
    while( !(cin>>order) )
    {
        cin.clear();
        cin.ignore( 1 );
    }

    cout << order << endl;
}
2017-01-03 08:34
快速回复:请教关于输入异常的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051128 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved