首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

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

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


热点排行