2

ファイルから長さが不明な整数の配列を読み取る方法は?配列のサイズを取得する方法がわからないので、一時的な文字列を試しましたが、コードが爆発します...

より良いアイデアはありますか?

4

1 に答える 1

8

使用std::vector

std::ifstream inFile(fileName);

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

std::vector動的ストレージを提供するため、保持するものに合わせて必要に応じてサイズを変更します。私が行うのは、イテレーターのペアを取得してそれらをループし、最初から最後までループし、値をベクトルにコピーするコンストラクターを利用することだけです。私が使用しているイテレータは、ファイルの終わりに達した場合のように、整数を読み取ることができなくなるまでファイルから整数を読み取ります。また、この形式のコンストラクターを使用するときに犯しやすい、最も厄介な解析を回避するために、均一な初期化を使用します。

于 2013-01-04T17:57:18.230 に答える