複数ファイルの出力
質問があります。1600個のデータを読み込んで(16個ずつの組で100組)、1番目、3番目、5番目、7番目のデータをss[1].txtとして出力し、同様に2番目、4番目、6番目、8番目のデータをsk[1].txt、9番目、11番目、13番目、15番目のデータをks[1].txt、10番目、12番目、14番目、16番目のデータをkk[1].txtとして出力させます。以下、ss[2].txt,sk[2].txt,ks[2].txt,kk[2].txt・・・に関してはそれぞれ直前のファイルに16を足したデータ(例えばss[2].txtなら、17番目、19番目、21番目、23番目のデータを出力)を出力させるというプログラムです。
以下に自分で作ったプログラムを掲載します。
void ecg_rr(fp,data_max)
FILE *fp;
{
int i,j=0;
int c=1;
char fname[64];
data[0][i]=trend_data[0][i];
for(i,j=0;i<100,j<100;i++,j++)
{
sprintf(fname,"ss[%d].txt",1+i);
fp = fopen(fname,"w");
fprintf(fp,"%4d\n",c);
fprintf(fp,"%8.8f\n",data[0][0+j*16]);
fprintf(fp,"%8.8f\n",data[0][2+j*16]);
fprintf(fp,"%8.8f\n",data[0][4+j*16]);
fprintf(fp,"%8.8f\n",data[0][6+j*16]);
sprintf(fname,"sk[%d].txt",1+i);
fp = fopen(fname,"w");
fprintf(fp,"%4d\n",c);
fprintf(fp,"%8.8f\n",data[0][1+j*16]);
fprintf(fp,"%8.8f\n",data[0][3+j*16]);
fprintf(fp,"%8.8f\n",data[0][5+j*16]);
fprintf(fp,"%8.8f\n",data[0][9+j*16]);
fclose(fp);
/*ks,kkに関しても同様*/
}
}
これだと100個ずつファイルを出力できるのですが、データが全て0として出力されてしまいます。
お礼
ありがとうございます。 うまくいきました!!