我有一个名为“wy.txt”的文件,它有一些像这样的整数:
1 2 3 4 5 6 7 8
我istream_iterator<int>
用来读取文件,并将copy()
数据输出到标准输出流。
然后我用同样istream_iterator<int>
的方法构造了一个vector
named v
,但是大小v
是1,你知道为什么吗?
这是我的代码:
ifstream file("wy.txt");
istream_iterator<int> fileStream(file);
istream_iterator<int> eof;
// output: 1 2 3 4 5 6 7 8
copy(fileStream, eof, ostream_iterator<int>(cout, " "));
cout<<endl;
vector<int> v(fileStream, eof);
// output: 1
cout<<v.size()<<endl;
// output: 1
for_each(v.begin(), v.end(), [](const int & t){cout<<t<" ";});
cout<<endl;
编辑:
我已将代码更改为:
ifstream file("wy.txt");
istream_iterator<int> fileStream(file);
istream_iterator<int> eof;
copy(fileStream, eof, ostream_iterator<int>(cout, " "));
cout<<endl;
file.seekg(0, ios::beg);
file.clear();
vector<int> v(fileStream, eof);
cout<<v.size()<<endl;
for_each(v.begin(), v.end(), [](const int & t){cout<<t<" ";});
...但它有同样的问题。