-1

これは非常に単純な質問です。.txt ファイルを読み取って、c++ を使用してベクターに保存するにはどうすればよいですか? タブで区切られたtxtファイルに9つのデータが保存されており、これを3つの異なるベクターに保存したいと考えています(Eigenライブラリを使用しています)。9つのデータは次のとおりです。

 -468.01    198.74  -123.9  -471.67 195.41  46.878  -471.39 111.84  45.518 

誰かが私を助けることができますか?前もって感謝します!

4

1 に答える 1

5

それらをdoubleのベクトルに格納し、ifstreamオブジェクトがあるとすると、最も簡単な方法は次のとおりです。

std::ifstream ifs( "data.txt" );

std::vector< double > values;
double val;
while( ifs >> val )
   values.push_back( val );

istream_iteratorを使用する別の方法があります。

std::copy( std::istream_iterator<double>(ifs), std::istream_iterator<double>(),
          std::back_inserter( values ) );

これにより、(3ではなく)単一のベクトルに保存されます。タイトルには「ベクターに保存」と書かれており、質問のテキストでは3つのベクターに保存するように求められます。データを3つのベクトルにフォーマットする方法を知るのは困難です。

もちろん、それらをファイルから単一のベクトルに読み取り、1つのベクトルを3つのサブ範囲として表示するラッパークラスを作成することもできます。

基本を説明しましたので、残りのコーディングを自分で試してください。

于 2012-12-03T15:43:45.007 に答える