C言語でクイズゲームを作らなければ、いけなくなりました。
一つのファイルに問題、選択肢、解答を書き、それを読み込むと言うものです。流れは、
(1)(初めてなら、スコアファイルを新規作成)⇒(2)前回のスコアファイルを読み込む⇒(3)問題ファイルを読み込む⇒(4)解答を入力させる⇒(5)答えが正解か判定し、スコアを更新⇒(6)今回のスコアを棒グラフで表示⇒(7)今回のスコアをスコアファイルに保存⇒(8)続けるか確認。続けない場合終了。続ける場合(2)にループ。
という流れです。また、スコアランキングの表示と問題ファイルを暗号化(メモ帳を開いても読めない)もしなければいけません。
期限が迫っているのに、全然分からないので、出来ればソースを教えて頂けないでしょうか・・・。もしくは、ヒントやアドバイスをお願いします。
No.3ベストアンサー
- 回答日時:
> クイズのファイルが読めこめません
kuizu.txt
これよね。
見えていないんじゃないかしら?
フルパスで指定するとか
パスに追加してみるとかしてみてはどお?
No.1
- 回答日時:
まず、それぞれの機能でやらなければいけないことを全て箇条書きにすること。
間違いなくそれぞれの項目は今までに習ってきたこと
もしくは教科書に載っていることのはずよ。
その上で分からないことを再度質問してくれるかしら。
この回答への補足
#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);
}
とりあえずこれでコンパイルしたんですけど、クイズのファイルが読めこめません。どこが問題なんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
binファイルを解凍したいの...
-
コマンドプロンプトで作成日時...
-
.NETアプリを作ったときの .man...
-
jarファイル
-
VBSが起動しない
-
自分で作成した重要ファイルを...
-
Latexで図番号だけを「図1.1」...
-
アクセス 壊れた? 「ファイ...
-
exeファイルの中身を見る方法は...
-
参照するファイルをワイルドカ...
-
VB.NET ファイルの種別取得方法
-
バッチ処理で追記コピーしたい
-
Seasar2のdiconファイルの読み方
-
frm、frxファイル
-
HTMLからのBATファイル実行
-
JRのjsonファイルって使って大...
-
リンクの張り付けかたを教えて...
-
#include <Windows.h>というヘ...
-
コマンドプロンプトで、指定し...
-
exeファイルが作れない(windows10)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
コマンドプロンプトで作成日時...
-
公文書のxmlファイルの開き方が...
-
#include <Windows.h>というヘ...
-
.NETアプリを作ったときの .man...
-
exeファイルの中身を見る方法は...
-
jarファイル
-
自分で作成した重要ファイルを...
-
Seasar2のdiconファイルの読み方
-
VBAでのicsファイル変換
-
バッチ処理で追記コピーしたい
-
監視ツールを入れさせられまし...
-
参照するファイルをワイルドカ...
-
「ブルーファイル」と「グリー...
-
HTMLからのBATファイル実行
-
Latexで図番号だけを「図1.1」...
-
C言語---ファイルに出力したデ...
-
Windowsのエクスプローラーでフ...
-
warファイルをEclipseでプロジ...
おすすめ情報