CSVデータの読み込み2006/04/16 08:49

海の中道の夕日

測定データの読み込みをしないといけなくなったけど、測定データって フォーマットが機器によって違うので、読み込むのが大変。スペース区切りなら、簡単なんだけど "," (カンマ)区切りの場合、結構やっかい。 ちなみに、C なら、

 char *p = "1,2,3,4,5,";
 char *ptr;
 for( ptr = strtok( p, ",");ptr !=NULL; p=strtok(0,",") ){
   int d = atoi( ptr );
 }

なんて感じで読み込めるけど、C++ の時には string 型を使いたい。 いろいろ、調べてみたけど、今のところ、こんな感じしか思いつかない。

 string str = "1,2,3,4,5";
 istringstream stream( str );
 string buf;
 while( getline(stream, buf, ',') ){
   int d;
   istringstream is( buf );
   if( !(is >> d) ){
     cout << "Error" << endl;
   }
 }

って感じかな。もっと、上手に読み込みが出来そうな気もするけど。。。

C++ への道は結構険しい。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
今年は、西暦何年でしょう?
(半角数字で2026と回答下さい)

コメント:

トラックバック