このままではコードが読みづらいので、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
#include <stdio.h>
#include <stdlib.h>
コード
//プロトタイプ宣言 void Title(void); //タイトル画面表示 void SaveData(int nData); //書き込み処理 void SelectData(void); //最初の画面表示 int LoadData(void); //読み込み処理 void InputData(int nData); //入力処理 void OutputData(int nData); //出力処理 int SetupData(void); //人数設定処理 //モード列挙型の定義 typedef enum { MODE_FINISH = 0, MODE_INPUT, MODE_OUTPUT, MODE_SAVE, MODE_LOAD, MODE_SETUP, MODE_MAX, }MODE; //モード列挙型 //マクロ変数宣言 #define BINARI_FILE "save.bin" //バイナリファイル #define DATA_MAX (5) //5を出力する #define DATA_ZERO (0) //0を出力する #define DATA_ONE (1) //1を出力する #define PLAYER_MAX (3) //プレイヤーの最大値 #define NAME_MAX (10) //名前の最大値 //プレイヤー構造体の定義 typedef struct { char aName[NAME_MAX]; //名前 int nAge; //年齢 float fHeight; //身長 }Player; //プレイヤーデータ //グローバル変数宣言 int g_aData[DATA_MAX]; Player g_aPlayer[PLAYER_MAX]; //================================================= //メイン関数 //================================================= void main(void) { SelectData(); //キー入力待ち printf("Enterキーを入力してプログラムを終了してください\n"); rewind(stdin); getchar(); } //================================================= //選択処理 //================================================= void SelectData(void) { int nSelData; int nData = 0 ; do { Title(); //タイトル scanf("%d", &nSelData); switch (nSelData) { case MODE_INPUT: //1を選択した場合 system("cls"); InputData(nData); //入力処理 break; case MODE_OUTPUT: //2を選択した場合 system("cls"); OutputData(nData); //出力処理 break; case MODE_SAVE: //3を選択した場合 system("cls"); SaveData(nData); //書き込み処理 break; case MODE_LOAD: //4を選択した場合 system("cls"); nData = LoadData(); //読み込み処理 break; case MODE_SETUP: //5を選択した場合 system("cls"); nData = SetupData(); //人数設定処理 system("cls"); break; case MODE_FINISH: //0を選択した場合 system("cls"); break; default: //それ以外の場合 system("cls"); printf("ちゃんと選択肢から選んでください\n\n"); break; } } while (nSelData != MODE_FINISH); } //================================================= //書き込み処理 //================================================= void SaveData(int nData) { FILE*pFile; if (g_aPlayer[DATA_ZERO].aName[DATA_ZERO] != NULL) {//名前のデータがある場合 //キー入力待ち printf("Now Saving....(Enterキーを押して進んでください)\n"); rewind(stdin); getchar(); pFile = fopen(BINARI_FILE, "wb"); fwrite(&nData, sizeof(int), DATA_ONE, pFile); fwrite(&g_aPlayer[DATA_ZERO], sizeof(Player), nData, pFile); fclose(pFile); //キー入力待ち printf("セーブが完了しました....(Enterキーで選択画面に戻ります)\n"); rewind(stdin); getchar(); system("cls"); } else {//名前のデータがなかった場合 printf("==================== エラー 402 NotFound =====================\n"); printf(" プレイヤーデータが入力されていません\n"); printf(" 選択画面で%dを選択してください(Enterキーで選択画面に戻ります)\n", MODE_INPUT); printf("===============================================================\n"); rewind(stdin); getchar(); system("cls"); } } //================================================= //読み込み処理 //================================================= int LoadData(void) { FILE*pFile; int nData; pFile = fopen(BINARI_FILE, "rb"); if (pFile != NULL) {//ファイルが開けた場合 fread(&nData, sizeof(int), DATA_ONE, pFile); //キー入力待ち printf("Now Loading....(Enterキーを押して進んでください)\n"); rewind(stdin); getchar(); fread(&nData, sizeof(int), DATA_ONE, pFile); fread(&g_aPlayer[DATA_ZERO], sizeof(Player), nData, pFile); //キー入力待ち printf("ロードが完了しました....(Enterキーで選択画面に戻ります)\n"); rewind(stdin); getchar(); system("cls"); fclose(pFile); } else {//開けなかった場合 printf("====================== エラー 403 NotFound =======================\n"); printf("ファイルを開くことができませんでした(Enterキーで選択画面にに戻ります)\n"); printf("===================================================================\n"); rewind(stdin); getchar(); system("cls"); } return nData; } //================================================= //設定処理 //================================================= int SetupData(void) { int nData; while (1) {//永久ループ printf("プレイヤー数を設定してください(%d~%d人まで設定できます)\n", DATA_ONE, PLAYER_MAX); scanf("%d", &nData); if (nData <= PLAYER_MAX && nData > DATA_ZERO) {//範囲内だった場合 return nData; break; } else if (nData > PLAYER_MAX) {//プレイヤーの最大値を超えた場合 printf("数が多すぎます\n"); printf("もう一度入力してください。\n"); } else if (nData < DATA_ZERO) {//0以下だった場合 printf("数が少なすぎます\n"); printf("もう一度入力してください。\n"); } } }
あなたの回答
tips
プレビュー