我正在为C程序员课程(coursera)学习C ++,在模块4中有一个如何使用istream迭代器将数据加载到STL向量的示例..但是当我尝试代码时它只打印来自文件的第一个数字。我无法在代码中找到错误。
注意:教师没有运行代码,他讲的是使用PDF。所以也许还有一些东西缺失。
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
using namespace std;
int main()
{
fstream data_file("data.txt");
istream_iterator<int> start_file(data_file), end_file;
vector<int> data(start_file, end_file);
int sum = 0;
for (auto i = start_file; i != end_file; i++)
{
sum += *i;
cout << *i << endl;
}
cout << data.size()<<endl;
cout << sum << endl;
cout << (sum* 1.0) / data.size() << endl;
return 0;
}