读书人

定义int型变量而非法输入时的异常

发布时间: 2013-03-12 11:19:35 作者: rapoo

定义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];

试问,字符串"."赋值给一个整数类型能不出错吗?


读书人网 >C++

热点推荐