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

c++输入流的有关问题,请问上

2013-01-28 
c++输入流的问题,请教下#include iostream#include vectorusing namespace stdint main(void){vector

c++输入流的问题,请教下


#include <iostream>
#include <vector>
using namespace std;

int main(void)
{
    vector<int> ivec;
    vector<int> ilist;
    int val;
    cout<<"请输入vector元素"<<endl;
    while(cin >> val)
    {
        ivec.push_back(val);
    }

    cout<<"请输入list元素"<<endl;
    while(cin >> val)
    {
        ilist.push_back(val);
    }



    vector<int>::iterator iter1 = ivec.begin();
    vector<int>::iterator iter2 = ilist.begin();

    while((iter1 != ivec.end()) && (iter2 != ilist.end()))
    {
        if(*iter1 != *iter2)
            break;
        ++iter1;
        ++iter2;
    }

    if((iter1 == ivec.end()) && (iter2 == ilist.end()))
    {
        cout<<"vector and list have the same emle"<<endl;
    }
    else
    {
        cout<<"vector and list different"<<endl;
    }

    return 0;
}


我想在第一个循环输错的情况下跳出来,继续执行第二个循环,但是不知道该对输入流做什么处理
试了几种自己想得方法,不对啊,求指点
[解决办法]
引用:
引用:可能需要自己加入逻辑判断了。
是啊,我想用cin.fail()来检查是否输入错误,然后如果出错的话跳出循环,但是在程序里试着不行啊。求指点下,该怎么判断,不是那种自己设定的值的判断



while(cin >> val 
[解决办法]
cin.fail())
{
if(cin.fail())
{
cin.clear(); //清除std::cin的错误状态
cin.sync(); //清空输入缓冲区
break;
}
ivec.push_back(val);
}

[解决办法]
引用:
引用:如果输入的不是数字就跳出来:
C/C++ code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <iostream>#include <vector>using names……

恩,我也发现在linux下无效,但是我也不是太清楚为什么不行,等我知道了再告诉楼主,如果楼主知道了,几个告诉我哦。

热点排行