前提・実現したいこと
csvファイルについて、fgetsを使って文字列としてデータを読み取り、 数値データを移動平均フィルタによって平滑化する。
発生している問題・エラーメッセージ
printfが反応しない
エラーメッセージ ない ### 該当のソースコード ```C言語 ソースコード ```#include <stdio.h> #include <stdlib.h> #include<string.h> #define N 1000 // 1行の最大文字数(バイト数) #define ROW 3 // 読み込むファイルのデータの行数 // 1列目の項目名と2列目以降のデータを格納する配列をメンバにもつ構造体 typedef struct str { char str1[12]; char str2[12]; char str3[12]; int f_data[27]; float result[27]; } data; int main(void) { FILE *fp,*fpw; // FILE型構造体 char fname[] = "saccade_ratio.csv"; char fnameout[] = "result.csv"; char line[N]; char str1[12]; char str2[12]; char str3[12]; int f[27]; int i = 0,j =0; int tmp[26]; data data[ROW]; fp = fopen(fname, "r"); // ファイルを開く。失敗するとNULLを返す。 if(fp == NULL) { printf("%s file not open!\n", fname); exit(EXIT_FAILURE); } fpw = fopen(fnameout,"w"); if((fp = fopen(fnameout,"w")) ==NULL) { printf("cannot open %s\n",fnameout); exit(EXIT_FAILURE); } while(fgets(line, N, fp) != NULL) { sscanf(line, "%[^,],%[^,],%[^,],%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", str1,str2,str3,&f[1], &f[2], &f[3], &f[4], &f[5],&f[6], &f[7], &f[8], &f[9], &f[10], &f[11], &f[12], &f[13], &f[14], &f[15], &f[16], &f[17], &f[18], &f[19], &f[20], &f[21], &f[22], &f[23], &f[24], &f[25], &f[26]); printf("%s,%s,%s\n",str1,str2,str3); for(j = 0; j < sizeof(data[i].str1) / sizeof(data[i].str1[0]); j++) { data[i].str1[j] = str1[j]; } for(j = 0; j < sizeof(data[i].str2) / sizeof(data[i].str2[0]); j++) { data[i].str2[j] = str2[j]; } for(j = 0; j < sizeof(data[i].str3) / sizeof(data[i].str3[0]); j++) { data[i].str3[j] = str3[j]; } for(i=1;i<27;i++) { tmp[i]=f[i]; } for(j = 0; j < sizeof(data[i].f_data) / sizeof(data[i].f_data[0]); j++) { data[i].f_data[j] = tmp[j]; } printf("%s,%s,%s,",str1,str2,str3); for(j=1;j<27;j++) { printf("%d,",data[i].f_data[j]); } printf("\n"); //移動平均 data[i].result[0]=(float)data[i].f_data[0]; data[i].result[1]=(float)data[i].f_data[1]; data[i].result[25]=(float)data[i].f_data[25]; data[i].result[26]=(float)data[i].f_data[26]; for(j=2;j<=24;j++) { data[i].result[j] = (float)(data[i].f_data[j-2]+data[i].f_data[j-1]+data[i].f_data[j]+data[i].f_data[j+1]+data[i].f_data[j+2]) / 5; } for(j=1;j<27;j++) { printf("%f,",data[i].result[j]); } i++; } for(j=1;j<27;j++) { printf("%f,",data[i].result[j]); fprintf(fpw,"%.1f,",data[i].result[j]); } fprintf(fpw,"\n"); fclose(fp); // ファイルを閉じる fclose(fpw); return 0; } 実行結果 [vmuser@c7vm2019 week9]$ ./a.out 0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,[vmuser@c7vm2019 week9]$