从文件中读取未知长度的int数组

时间:2013-01-04 17:55:08

标签: c++ arrays file

如何从文件中读取长度未知的整数数组? 我没有看到获得数组大小的方法,所以我尝试了一些临时字符串的东西, 但我的代码爆炸......

任何更好的想法?

1 个答案:

答案 0 :(得分:8)

使用std::vector

std::ifstream inFile(fileName);

std::vector<int> ints{
    std::istream_iterator<int>(inFile),
    std::istream_iterator<int>()
};

std::vector提供动态存储,因此可根据需要调整其大小以适应其所拥有的内容。我所做的只是利用构造函数,它接受一对迭代器并循环遍历它们,从头到尾,并将值复制到向量中。我正在使用的迭代器将读取文件中的整数,直到有人不能,就像到达文件末尾的情况一样。我还使用统一初始化来避免最令人烦恼的解析,这在使用这种形式的构造函数时很容易出错。