使用迭代器浏览文件

时间:2017-09-15 15:59:29

标签: c++

我有一个二进制文件,它包含10个整数,让我们用二进制表示。有没有办法使用迭代器来浏览该文件?到目前为止,我只是从文件中加工这些数字并将它们放入数组中。但我可以避免使用数组或向量吗?有些东西告诉我,我可能需要重载++和 - 。希望我的问题很清楚。

1 个答案:

答案 0 :(得分:2)

使用任何std::istream来阅读文件,您可以使用std::istream_iterator并定义使用std::istream.read()来读取整数的自定义operator>>。例如:

struct binary_int
{
    int32_t value; // or whatever type you need
};

std::istream& operator>>(std::istream &in, binary_int &out)
{
    return in.read((char*)&out.value, sizeof(out.value));
}

{
    std::ifstream inFile(...);

    std::istream_iterator<binary_int> iter(inFile);
    std::istream_iterator<binary_int> end;

    while (iter != end)
    {
        // use iter->value as needed...
        ++iter;
    }
}