int n;
cin>>n;
如果用户输入一个单词,而不是一个数字,发生这种类型不匹配的情况时,将发生以下四种情况:
1.n的值保持不变
2.不匹配的输入将被留在输入队列中
3.cin对象中的一个错误标记被设置(如EOF标志)
4.对cin方法的调用将返回false(如果被转换成bool类型)
下面查看一段详细代码:
向整型数组中输入5个数
要求:
发生输入错误时
1.能重新接收新的输入
2.能删除错误输入
3.能提示用户再输入
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a[5];
for(int i=0;i<5;i++)
{
while(i<5&&!(cin>>a[i]))
{
cin.clear(); //reset input
while(cin.get()!='\n')
continue; //get rid of bad input
cout<<"Please Enter a number:\n";
}
}
cout<<"you have successfully done the input!"<<endl;
return 0;
}