向量构造函数不会更改end_file istream_iterator

时间:2016-07-30 16:22:26

标签: c++ vector stl iterator istream

我正在为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;
}

0 个答案:

没有答案