ソースコードは以下の通りです。
///////////////////////////////////////////////////////////////////////////////////////
//【インクルード記述】 ///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <time.h>
///////////////////////////////////////////////////////////////////////////////////////
//【グローバル変数記述】 /////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
char quiz_cm1[150]; //テキスト一行目
char quiz_cm2[150]; //テキスト二行目
char quiz_cm3[150]; //テキスト三行目
char quiz_cm4[150]; //テキスト四行目
int genre_slt; //クイズジャンルセレクト
int dif_slt; //クイズ難易度セレクト
///////////////////////////////////////////////////////////////////////////////////////
//【プロトタイプ宣言】 ///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
int opening(void);
void game_main(int);
void quiz_slt(void);
void quiz_cr(void);
void end(void);
void test(char);
//////////////////////////////////////////////////////////////////////////////////////
//【メイン関数】 ////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
int main(void)
{
srand(( unsigned )time( NULL )); //乱数生成
int sel; //ゲーム選択
while(1)
{
sel=opening(); //ゲームモード選択
if(sel==3) //ゲームモード時に3を選択した際は、ゲームをループを抜けてゲームを終了させる
{
break;
}
game_main(sel);
}
end();
rewind(stdin);
getchar();
return 0;
}
//////////////////////////////////////////////////////////////////////////////////////
// 【オープニング】 /////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
int opening(void)
{
int sel=0;
while(1)
{
system("CLS");
printf("\n\n\n\n\n");
printf(" ■■■■■■■■■■■■■■■■■■■■■■\n");
printf(" ■■■■■ ■■■■■\n");
printf(" ■■■■ ★ クイズアカデミー ★ ■■■■\n");
printf(" ■■■■■ ■■■■■\n");
printf(" ■■■■■■■■■■■■■■■■■■■■■■\n\n");
printf(" --------------------------------------------------------------\n");
printf(" | 1・・・クイズスタート |\n");
printf(" | 2・・・クイズを作成する |\n");
printf(" | 3・・・ゲームを終了する |\n");
printf(" | |\n");
printf(" | 遊びたいモードを1~3を入力し、enterキーで決定して下さい |\n");
printf(" -------------------------------------------------------------- \n");
printf(" select:");
rewind(stdin);
scanf("%d",&sel);
if( (sel<=3) && (sel>0) )
{
break;
}
}
return sel;
}
//////////////////////////////////////////////////////////////////////////////////////
// 【ゲームメイン】 ////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
void game_main(int sel)
{
switch(sel)
{
case 1:quiz_slt();
break;
case 2:quiz_cr();
break;
}
}
//////////////////////////////////////////////////////////////////////////////////////
// 【クイズテキスト描写】 //////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
void quiz_viw(void)
{
printf("\n■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■");
printf("■%-76s■",quiz_cm1);
printf("■%-76s■",quiz_cm2);
printf("■%-76s■",quiz_cm3);
printf("■%-76s■",quiz_cm4);
printf("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■");
}
//////////////////////////////////////////////////////////////////////////////////////
// 【クイズ選択】 //////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
void quiz_slt(void)
{
FILE *quiz_slt; //ファイルオープン
quiz_slt=fopen("quiz_slt.txt","r");
system("CLS");
if(quiz_slt==NULL) //ファイルエラー判定
{
printf("ファイルを読み込めませんでした。\n");
exit(EXIT_FAILURE);
}
while(1)
{
rewind(quiz_slt);
fscanf(quiz_slt,"%s %s %s %s",&quiz_cm1,&quiz_cm2,&quiz_cm3,&quiz_cm4); //
quiz_viw(); //ジャンル選択テキスト
printf(" select:"); //
rewind(stdin);
scanf("%d",&genre_slt); //クイズジャンルを入力
if( (genre_slt<7) && (genre_slt>0) )
{
system("CLS");
break;
}
system("CLS");
}
while(1)
{
rewind(quiz_slt);
fscanf(quiz_slt,"%s %s %s %s",&quiz_cm1,&quiz_cm2,&quiz_cm3,&quiz_cm4); //文字列流し
fscanf(quiz_slt,"%s %s %s %s",&quiz_cm1,&quiz_cm2,&quiz_cm3,&quiz_cm4); //
quiz_viw(); //難易度選択テキスト
printf(" select:"); //
rewind(stdin);
scanf("%d",&dif_slt); //クイズ難易度を入力
if( (dif_slt>0) && (dif_slt<=6))
{
system("CLS");
break;
}
system("CLS");
}
rewind(quiz_slt);
fclose(quiz_slt); //ファイルクローズ
rewind(stdin);
getchar();
}
//////////////////////////////////////////////////////////////////////////////////////
// 【クイズ作成】 //////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
void quiz_cr(void)
{
FILE *quiz_cr;
quiz_cr=fopen("quiz_cr.txt","r");
system("CLS");
if(quiz_cr==NULL)
{
printf("ファイルを読み込めませんでした");
exit(EXIT_FAILURE);
}
for( int quiz_file=0 ; quiz_file!=NULL ; quiz_file++)
{
FILE *quiz_file;
quiz_file=fopwn("%d.txt",&quiz_file,r+);
}
fscanf(quiz_cr,"%s %s %s %s",&quiz_cm1,&quiz_cm2,&quiz_cm3,&quiz_cm4);
quiz_viw();
rewind(stdin);
getchar();
fclose(quiz_cr);
}
void end(void)
{
printf("ゲームを終了します。");
}
ソースコードの中に、
for( int quiz_file=0 ; quiz_file!=NULL ; quiz_file++)
{
FILE *quiz_file;
quiz_file=fopwn("%d.txt",&quiz_file,r+);
}
当然、それは失敗した訳ですが、
まぁ、上記ので何をしたかったのかと言うと、
①ファイル名は変数quiz_fileの数字
②変数quiz_fileの数字のファイルが存在した場合はforを繰り替えず。
③NULLが返されたらそれは存在しないファイルなので、変数quiz_fileの数字のファイルが作成される。
④そのファイルに問題文等等をユーザーが記述する。
って事をやってみたいと思いました。
何方かこのやり方を教えて下さい!お願いします!><