定义int型变量而非法输入时的异常
定义int型变量而非法输入时的错误int data[10]for(int i0i!10++i){coutPlease input the NO.i+
定义int型变量而非法输入时的错误
int data[10];
for(int i=0;i!=10;++i)
{
cout<<"Please input the NO."<<i+1<<" integer: ";
cin>>data[i];
}
程序如上,
为什么当我输入非整形变量时 例如输入3.14,程序运行出错呢?
[解决办法]#include<iostream>
#include<string>
int main(){
using namespace std;
int data[10];
for(int i=0;i!=10;++i)
{
cout<<"Please input the NO."<<i+1<<" integer: ";
cin>>data[i];
if(!cin){
break;
}
cout<<"out"<<data[i];
}
return 0;
}
看这样能看出问题来吗?
[解决办法]我个人猜测:
输入3.14
cin流 第一次截取"3"赋值给data[i];
cin流 第二次截取"."赋值给data[i];
试问,字符串"."赋值给一个整数类型能不出错吗?