• ベストアンサー

ファイル入力

Cで,ファイル入力の質問です。 たくさんの行があっても,2列程度の値の並んでいるファイルから入力するのは, 23 45 34 99 ・・・・・ while (EOF != fscanf(in,"%lf %lf",&x,&y)) のようにすればいいと思うのですが, もし,100行100列のようなデータ列のファイルから,入力をするにはどうしたらいいのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • yasuch
  • ベストアンサー率41% (27/65)
回答No.1

fgets()で読み込んでstrtok()で切り出せばよいのでは? 下記のようにすれば変数dataに読み出せるので、 2次元配列にでも入れてもらえれば #include <string.h> #include <stdio.h> void main( void ) { char buff[2048]; FILE *fp; char seps[] = " ,\t\n"; char *token; float data; if((fp=fopen("data.csv", "r")) == NULL) return; while(fgets(buff, sizeof(buff), fp) != NULL) { token = strtok( buff, seps ); while( token != NULL ) { sscanf(token, "%f", &data); printf("%f\n", data); token = strtok( NULL, seps ); } } fclose(fp); }

関連するQ&A