0
我有一个二进制文件,其中包含10个整数让我们说二进制。有什么方法可以使用迭代器来检查该文件吗?到目前为止,我只是从文件中处理这些数字并将它们放入数组中。但我可以避免使用数组或向量?有些事告诉我可能需要重载++和 - 。希望我的问题很清楚。使用迭代器浏览文件
我有一个二进制文件,其中包含10个整数让我们说二进制。有什么方法可以使用迭代器来检查该文件吗?到目前为止,我只是从文件中处理这些数字并将它们放入数组中。但我可以避免使用数组或向量?有些事告诉我可能需要重载++和 - 。希望我的问题很清楚。使用迭代器浏览文件
使用任何std::istream
读取文件,你可以使用std::istream_iterator
和定义自定义operator>>
使用std::istream.read()
读取整数。例如:
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;
}
}
将其读入缓冲区。将缓冲区视为一个数组。你确定他们是在右端格式?为什么要避免使用阵列,当他们是工作的正确工具? – tadman
@tadman这就是任务:( –
如果这是一个编码挑战,**得到编码**。记住在C和C++数组和指针是同一枚硬币的两面。 – tadman