2015年8月27日木曜日

c言語 可変の列

#include <stdio.h>
#define SIZE 10000
#include <stdio.h>

//const int row = 300; // これは十分おおきくとっておく
//const int column = 8; // 8列でチェックした。必要に応じて変える
#define row  300
#define column  6

union data{ // ■共用体
 double a[row*column];
 double A[row][column];
};

int main(void)
{
union data u; // 共用体の実体定義

char *fname = "data20.csv"; // 入力ファイル名は実際のファイル名に変える
FILE *fp;
int i, j, n, nn;

if((fp = fopen(fname, "r"))==NULL){
printf( "%s が開けません\n", fname );
return -1;
}

i=0;
while((fscanf(fp, "%lf,", &u.a[i])!= EOF)) // 1次元配列に入れて
i++;

n = i; // 実際に読み込んだデータ数
nn = i/column; // 2次元配列としたときの行数

//puts("確認表示");
puts("aaa");
for(i=0; i<nn; i++){
for(j=0; j<column; j++)
printf("%f ", u.A[i][j]); // アクセスには u.A[i][j] を使う
puts("");
}
puts("");


fclose(fp);
return 0;
}