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();