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で質問しましょう!
似たような質問が見つかりました
- 大学・短大 至急!! TOEICに詳しい人教えて欲しいです!!! 大学1年男子です。 TOEICの勉強法について 2 2023/06/22 09:53
- 野球 野球のXについて 2 2022/11/20 19:16
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- その他(Microsoft Office) OneDrive Personalについて 1 2022/08/02 18:25
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Windows 10 windowsの回復ドライブや復元ポイントを使用した場合の戻る位置を教えてください。 5 2023/08/19 14:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス 壊れた? 「ファイ...
-
#include <Windows.h>というヘ...
-
.NETアプリを作ったときの .man...
-
warファイルをEclipseでプロジ...
-
binファイルを解凍したいの...
-
Latexで図番号だけを「図1.1」...
-
exeファイルの中身を見る方法は...
-
自分で作成した重要ファイルを...
-
コマンドプロンプトで、指定し...
-
jarファイル
-
ファイル名にドットを使ったフ...
-
VBAでのicsファイル変換
-
リンクの張り付けかたを教えて...
-
HPにパズルを入れたいのです...
-
C言語---ファイルに出力したデ...
-
ドラッグしたファイルのパスを...
-
exeファイルの個人情報について
-
実行ファイル(.exeファイル)...
-
参照するファイルをワイルドカ...
-
CSSを1ページに1枚作るのって変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセス 壊れた? 「ファイ...
-
#include <Windows.h>というヘ...
-
binファイルを解凍したいの...
-
Latexで図番号だけを「図1.1」...
-
.NETアプリを作ったときの .man...
-
C言語---ファイルに出力したデ...
-
exeファイルをデータ転送サービ...
-
Word VBA MSGBOX 内で降順表示
-
jarファイル
-
公文書のxmlファイルの開き方が...
-
参照するファイルをワイルドカ...
-
コマンドプロンプトで、指定し...
-
パイソンでpy ファイルと p...
-
exeファイルの中身を見る方法は...
-
コマンドプロンプトで作成日時...
-
ハッシュ値を取る時はファイル...
-
CSSを1ページに1枚作るのって変...
-
実行ファイル(.exeファイル)...
-
バッチ処理で追記コピーしたい
-
自分で作成した重要ファイルを...
おすすめ情報