读书人

istream_iteratord无法往vector中插入

发布时间: 2012-02-28 13:06:35 作者: rapoo

istream_iteratord无法往vector中插入数据的问题
int main()
{

vector <int> //往VEC1中插入数据 vec1((istream_iterator <int> (cin)),istream_iterator <int> ());

copy(vec1.begin(),vec1.end(),ostream_iterator <int> (cout, "\n "));


vector <float> //往VEC2中插入数据 vec2((istream_iterator <float> (cin)),istream_iterator <float> ());
copy(vec2.begin(),vec2.end(),ostream_iterator <float> (cout, "\n "));

system( "pause ");
}


现在的问题是,vec1可正常插入数据,vec2却死活插不进去,这是什么原因?

[解决办法]
在插入vec2前:cin.clear();

因为vec1的构造就是依靠cin的失败来结束的,既然cin已经失败,再次用cin来插入就不成功了。所以在vec2前要清理cin的标志位。
[解决办法]
提问的智慧


建议楼主之间删除对vec1的操作,确认就是cin的问题,集中解决就是了。
[解决办法]
“以非法字符结束”,兄弟,你真狠啊!
应该是用回车-ctrl_z/F6-回车结束输入。

就你这么,算恶搞,那么代码得
cin.clear();
cin.sync();

读书人网 >C++

热点推荐