您的位置:首页 > 编程语言 > C语言/C++

关于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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: