如何从文件中读取未知长度的整数数组?我没有办法得到数组的大小,所以我尝试了一些临时字符串的东西,但是我的代码爆炸了…
有更好的主意吗?
使用std::vector
:
std::ifstream inFile(fileName);
std::vector<int> ints{
std::istream_iterator<int>(inFile),
std::istream_iterator<int>()
};
std::vector
提供动态存储,因此它会根据需要调整大小以适应它所容纳的内容。我所做的就是利用构造函数,该构造函数接受一对迭代器,从头到尾遍历它们,并将值复制到vector中。我使用的迭代器将从文件中读取整数,直到无法读取为止,就像到达文件末尾的情况一样。我还使用统一初始化来避免最麻烦的解析,这是使用这种形式的构造函数时容易犯的错误。