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++ への道は結構険しい。
最近のコメント