/* 出展 http://simd.jugem.jp/?eid=49 gcc -g comma.cpp -o comma */ #include <stdio.h> int main(void) { FILE *fp; const char *fname = "comma.csv"; char s[100]; int ret, n1, n2; float f1, f2; fp = fopen( fname, "r" ); if( fp == NULL ){ printf( "%sファイルが開けません\n", fname ); return -1; } /* fscanf()やscanf()関数には%dや%sなどの、 変換文字(変換仕様)と言われる指定方法があります。 その中に、%[^...] という変換文字があり、カッコ内の文字以外を読み込むという意味です。 つまり、%[^abc] の場合は、「abc」以外の文字を読み込むという指定が出来ます。 これを、CSVファイル読み込みにも利用してみます。 */ while( ( ret = fscanf( fp, "%[^,],%d,%d,%f,%f", s, &n1, &n2, &f1, &f2 ) ) != EOF ){ printf( "%s %d %d %f %f", s, n1, n2, f1, f2 ); } fclose( fp ); return 0; } #if 0 以下を、"comma.csv"というファイル名で保存する。 test01,10,11,1.0,1.1 test02,20,21,2.0,2.1 test03,30,31,3.0,3.1 #endif