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