2010-11-29 5 views
2

istream_iterator<customstruct>を使用して、ヒトのstdinからベクターを挿入することはできますか?構造体には複数のデータ型が含まれています。istream_iteratorを使用して、キーボードから構造体のベクトルを読み込みますか?

これは意味がありますか、それともそれぞれのデータを個別にプロンプ​​トする方が良い方法でしょうか?私はそうするように頼まれたので尋ねるだけですが、それが可能であるとは思えません。

答えて

2

「演算子>>」のオーバーロードがある場合、istream_iteratorによって何かが読み取られ、コピー可能で割り当て可能です。

イテレータを終了させるためにEOFシーケンスを手動で入力する必要があるので、読めるようにするのは良い方法だとは思いません。

EOFの使用を避けるには、ユーザーに多数のレコードを入力させることができますが、ほとんどの人は入力前にレコードの数を知ることはできません。

より良い選択は、行単位で読み込み、文字列ストリームを使用してデータを取得することです。このようにして、あらかじめ定義されたパターン(空行など)をデータとして文字列ストリームに送る前に、入力の終わりとして認識することができます。

関連する問題