アプリ版:「スタンプのみでお礼する」機能のリリースについて

姓名判断のプログラムを作ろうと思い、次の様な漢字ファイルをメモ帳で作ったのですが、

花,7[リターン]
木,4[リターン]
絵,12[リターン]
・・・

このファイルから花や木や絵の部分をchar型配列に7,4,12などの画数の部分をint型配列に入れたいのですが、どのようにしたらよいのかわかりません。fscanfを使おうとしても1行分文字列として認識されてしまいます。

A 回答 (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;
}
    • good
    • 0
この回答へのお礼

遅くなってしまいすいません。
あの後、ファイル構造を変えて上記プログラムを実行したところ
みごとにはいりました。
ありがとうございました。

お礼日時:2002/11/02 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!