- ベストアンサー
ファイル入出力について
姓名判断のプログラムを作ろうと思い、次の様な漢字ファイルをメモ帳で作ったのですが、 花,7[リターン] 木,4[リターン] 絵,12[リターン] ・・・ このファイルから花や木や絵の部分をchar型配列に7,4,12などの画数の部分をint型配列に入れたいのですが、どのようにしたらよいのかわかりません。fscanfを使おうとしても1行分文字列として認識されてしまいます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
fscanfを使うのであれば、コンマではなくスペースで区切ったほうが楽だと思います。ファイルからの読み込みは次のようにすればできます。 #include<stdio.h> #include<stdlib.h> #define MAX 32 int main(void) { char kanji[MAX][3]; /*漢字*/ int kakusu[MAX]; /*画数*/ int i=0, j=0; FILE *fp; /*読み込み*/ fp=fopen("kanji.dat", "r"); if(fp == NULL) exit(1); while( fscanf(fp, "%s%d", kanji[i], &kakusu[i]) != EOF ){ i++; } fclose(fp); /*確認*/ while(j<i){ printf("%2d %s %2d\n", j, kanji[j], kakusu[j]); j++; } return 0; }
お礼
遅くなってしまいすいません。 あの後、ファイル構造を変えて上記プログラムを実行したところ みごとにはいりました。 ありがとうございました。