读书人

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

发布时间: 2013-01-28 11:49:56 作者: rapoo

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下无效,但是我也不是太清楚为什么不行,等我知道了再告诉楼主,如果楼主知道了,几个告诉我哦。

读书人网 >C++

热点推荐