c言語で英単語とその和訳が書いてあるtxtファイルを読み込み、構造体に全て格納するプログラムを書きましたが、うまくいきません。コンパイルはできたのですが実行すると以下のエラーが出ます。
txt
zsh: segmentation fault
問題点・改善点を教えてください。
一部抜粋してきたコードというのもあり分かりにくくてすみません。
c
#include <stdio.h> #include <string.h> #define MAX_BUF 1024 typedef struct trans { char english[MAX_BUF]; char japanese[MAX_BUF]; } trans; int main(void) { int i; char c; char buf[MAX_BUF]; FILE *fp = NULL; fp = fopen("dic.txt", "r"); trans p[50]; i=0; int j=0, k=0; while((c = fgetc(fp)) != EOF) { while(c != ' ') { buf[i] = c; i++; } buf[i] = '\0'; i = 0; if(buf[0] != '\0') { if(j==0) { strcpy(p[k].english, buf); j = 1; } else { strcpy(p[k].japanese, buf); j = 0; k++; } memset(buf, '\0', sizeof(buf)); } } for(i=0; i<20; i++) { printf("%s %s\n", p[i].english, p[i].japanese); } fclose(fp); return 0; }
txt
gorilla ゴリラ hawk 鷹 horse 馬 jaguar 豹 kangaroo カンガルー koala コアラ lion ライオン monkey 猿 ostrich 駝鳥 panda パンダ peacock 孔雀 penguin ペンギン
まだ回答がついていません
会員登録して回答してみよう