今天被人问了关于给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;
}
}
本文探讨了在C++中处理整数输入异常的方法。通过一个具体的例子,展示了如何使用cin.clear()和cin.ignore()来避免死循环,并确保只有有效的整数输入被接受。
17万+

被折叠的 条评论
为什么被折叠?



