关于C++中给int变量输入字符引起的死循环解决方法
2011-11-06 12:33
471 查看
今天被人问了关于给int型变量输入字符的异常处理方法,当时想也没想直接说加个判断
int num;
cin>>num;
while(!cin)
{
cout<<"输入错误";
cin>>num;
}
但他试完了说发现死循环了,我试了一下,果然这样,挺纠结的问题哈
一番周折后,终于再网上找到了解决方法,一起分享哈
#include <iostream.h>
#include <limits>
#include <sstream>
using namespace std;
void main()
{
int num;
while( !(cin>>num) || cin.peek()!='\n' )
{
cin.clear();
cin.ignore( numeric_limits<streamsize>::max(), '\n' );
cout << "输入数据错误,请重新输入:" << endl;
}
}
int num;
cin>>num;
while(!cin)
{
cout<<"输入错误";
cin>>num;
}
但他试完了说发现死循环了,我试了一下,果然这样,挺纠结的问题哈
一番周折后,终于再网上找到了解决方法,一起分享哈
#include <iostream.h>
#include <limits>
#include <sstream>
using namespace std;
void main()
{
int num;
while( !(cin>>num) || cin.peek()!='\n' )
{
cin.clear();
cin.ignore( numeric_limits<streamsize>::max(), '\n' );
cout << "输入数据错误,请重新输入:" << endl;
}
}
相关文章推荐
- c++ cin一个整数 输入其它字符产生死循环错误的解决方法。
- IE6重影的解决方法(关于注释引起的文字溢出/3px Bug/双float<浮动>元素字符)
- 关于C++中输入与变量类型不匹配的解决办法
- 关于Ubuntu16.04 在Android studio中无法输入中文的解决方法
- error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 解决方法
- [转]关于在C++中输入带空格的字符串的方法
- 关于c++6.0在电脑上打不开解决方法:
- 关于QRegExp如何筛选出特殊字符的解决方法
- c++循环包含一种解决方法
- 解决C++中误输入导致while结构死循环的问题
- 编辑框中只允许输入某些特定字符的解决方法
- 关于MYSQL无法输入中文、中文乱码的解决方法
- C++ 把枚举变量的名称,直接当字符串使用方法 字符串化符号 #
- 在Powe Point 2007 里输入汉字 、字符、数字等,非常慢的解决方法
- VC编辑器输入字符会替换掉原来字符解决方法
- 使用vim编写c++对于输入输出流<<和<>括号匹配冲突的解决方法
- 关于js的break不能跳出多重循环的解决方法。
- 关于ubuntu修改profile后登陆界面循环的解决方法
- 完美解决x2注册页面出现‘抱歉,你输入的用户名小于3个字符问题’的两种方法
- c#关于int(或其他类型)的字段在对象初始化时默认初始化问题的解决方法