前提
ここに質問の内容を詳しく書いてください。
C言語でcsvファイルから読み込み、それを別のcsvファイルに書き込むプログラムを作っています。
読み込むcsvファイルは最初4行は必要ない情報なのでスキップし、5行目から
2017,1,1,1,5.8,1.5,南
2017,1,1,2,4.9,0.8,南東
...
といったように、左から年、月、日、時間、気温、風速、風向きといったようなデータファイルになっています。
実現したいこと
いずれは読み込んだ数字から、平均値、最高値を出したいです。
発生している問題・エラーメッセージ
うまくファイルから読み込めず、同じ数字の無限ループが表示されます。
該当のソースコード
C
1ソースコード 2/* ex1.c */ 3/* fscanfの例 */ 4#define _CRT_SECURE_NO_WARNINGS 5#include <stdio.h> 6#define BUF_NUM 256 7int main(void) { 8 FILE* fin,*fout; 9 char buf[BUF_NUM]; 10 int i, nen,tuki,hi,ji; 11 double kion,fusoku; 12 13 //ファイルオープン 14 fin = fopen("osaka-hour.csv", "r"); 15 if (fin == NULL) { 16 printf("入力ファイルをオープンできません\n"); 17 return 1; 18 } 19 20 //最初の4行は使わないので読み捨てる 21 for (i = 0; i < 4; i++) { 22 fgets(buf, BUF_NUM, fin); 23 } 24 25 26 27 //書式付きで読む 28 while (fscanf(fin, "%d,%d,%d,%d,%lf,%lf", &nen, &tuki,&hi,&ji,&kion,&fusoku) != EOF) { 29 printf("%d,%d,%d,%d,%lf,%lf", &nen, &tuki, &hi, &ji, &kion, &fusoku); //カンマ付けて標準出力 30 } 31 32 fclose(fin); 33 34 fout = fopen("osaka-day.csv", "w"); 35 36 while (fscanf(fin, "%d,%d,%d,%d,%lf,%lf", &nen, &tuki, &hi, &ji, &kion, &fusoku) != EOF) { 37 fprintf(fout, "%d,%d,%d,%d,%lf,%lf", &nen, &tuki, &hi, &ji, &kion, &fusoku); //カンマ付けて標準出力 38 } 39 40 fclose(fout); 41 42 return 0; 43} 44 45### 試したこと 46 47whileループに問題があるのかと思い色々変更したりしたのですが、同じような結果になってしまいます。 48 49### 補足情報(FW/ツールのバージョンなど) 50 51ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー