如何从文件中读取长度未知的整数数组? 我没有看到获得数组大小的方法,所以我尝试了一些临时字符串的东西, 但我的代码爆炸......
任何更好的想法?
答案 0 :(得分:8)
使用std::vector
:
std::ifstream inFile(fileName);
std::vector<int> ints{
std::istream_iterator<int>(inFile),
std::istream_iterator<int>()
};
std::vector
提供动态存储,因此可根据需要调整其大小以适应其所拥有的内容。我所做的只是利用构造函数,它接受一对迭代器并循环遍历它们,从头到尾,并将值复制到向量中。我正在使用的迭代器将读取文件中的整数,直到有人不能,就像到达文件末尾的情况一样。我还使用统一初始化来避免最令人烦恼的解析,这在使用这种形式的构造函数时很容易出错。