この間質問した内容です。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int knum;
int kNO;
char **kstr;
int *ans;
int get_score(void)
{
FILE *fp;
int best;
if((fp = fopen("score.txt","r")) == NULL)
{
printf("初回起動ですね。\nスコアファイルを新規作成します。\n");
best = 0;
}
else
{
fscanf(fp,"%d%d",&best,&knum);
printf("最高点は%d問中%d問です。\n",knum,best);
fclose(fp);
}
}
int read_kuizu(void)
{
int i;
FILE *fp;
if((fp = fopen("kuizu.txt","r")) == NULL) return(-1);
fscanf(fp,"%d",&kNO);
if((kstr = (char **)calloc(kNO,sizeof(char *))) == NULL) return(-1);
if((ans = (int *)calloc(kNO,sizeof(int))) == NULL) return(-1);
for(i = 0; i<kNO; i++)
{
char temp[1024];
size_t len;
fscanf(fp,"%s",temp);
fscanf(fp,"%d",&ans[i]);
len = strlen(temp);
if((kstr[i] = (char *)malloc(len + 1)) == NULL) return(-1);
strcpy(kstr[i],temp);
}
fclose(fp);
return(0);
}
int kuizu_game(void)
{
int i;
int score = 0;
for(i = 0; i<kNO; i++)
{
int unans;
printf("\nクイズ%d\n", i + 1);
printf("%s YES(0)/NO(1)\n",kstr[i]);
do
{
printf("答を選んで番号を入力して下さい。=>\n");
scanf("%d",&unans);
}
while(unans!=0 && unans!=1);
if(unans == ans[i])
{
score++;
printf("正解です!\n");
}
else
printf("残念ながら不正解・・・\n");
}
return(score);
}
void result(int best,int score)
{
printf("\n今回%d問中%d問正解でした。\n",kNO,score);
printf("前回は%d問中%d問正解していました。\n",knum,best);
}
int main(void)
{
int score;
int best;
best = get_score();
if(read_kuizu() == -1)
{
printf("エラー\n");
return(-1);
}
score = kuizu_game();
result(best,score);
if(score>best)
{
printf("最高点を更新!\n");
best = score;
}
FILE *fp;
fp = fopen("score.txt","w");
fclose(fp);
return(0);
}
一応ここまでやってコンパイルしたのですが、クイズのファイルを読み込む事ができません。どこか間違ってるんでしょうか?