質問編集履歴

3

選択処理の上main()を追加しました

2022/05/29 06:14

投稿

Hosyu
Hosyu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -44,6 +44,19 @@
44
44
  Player g_aPlayer[PLAYER_MAX];
45
45
 
46
46
  //=================================================
47
+ //メイン関数
48
+ //=================================================
49
+ void main(void)
50
+ {
51
+ SelectData();
52
+
53
+ //キー入力待ち
54
+ printf("Enterキーを入力してプログラムを終了してください\n");
55
+ rewind(stdin);
56
+ getchar();
57
+ }
58
+
59
+ //=================================================
47
60
  //選択処理
48
61
  //=================================================
49
62
  void SelectData(void)

2

読み込み処理の前に書き込み処理を追加しました

2022/05/29 05:16

投稿

Hosyu
Hosyu

スコア1

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,6 @@
2
2
  #include <stdlib.h>
3
3
  コード
4
4
  ```
5
-
6
5
  //プロトタイプ宣言
7
6
  void Title(void); //タイトル画面表示
8
7
  void SaveData(int nData); //書き込み処理
@@ -97,6 +96,41 @@
97
96
  } while (nSelData != MODE_FINISH);
98
97
  }
99
98
 
99
+ //=================================================
100
+ //書き込み処理
101
+ //=================================================
102
+ void SaveData(int nData)
103
+ {
104
+ FILE*pFile;
105
+ if (g_aPlayer[DATA_ZERO].aName[DATA_ZERO] != NULL)
106
+ {//名前のデータがある場合
107
+ //キー入力待ち
108
+ printf("Now Saving....(Enterキーを押して進んでください)\n");
109
+ rewind(stdin);
110
+ getchar();
111
+
112
+ pFile = fopen(BINARI_FILE, "wb");
113
+ fwrite(&nData, sizeof(int), DATA_ONE, pFile);
114
+ fwrite(&g_aPlayer[DATA_ZERO], sizeof(Player), nData, pFile);
115
+ fclose(pFile);
116
+
117
+ //キー入力待ち
118
+ printf("セーブが完了しました....(Enterキーで選択画面に戻ります)\n");
119
+ rewind(stdin);
120
+ getchar();
121
+ system("cls");
122
+ }
123
+ else
124
+ {//名前のデータがなかった場合
125
+ printf("==================== エラー 402 NotFound =====================\n");
126
+ printf(" プレイヤーデータが入力されていません\n");
127
+ printf(" 選択画面で%dを選択してください(Enterキーで選択画面に戻ります)\n", MODE_INPUT);
128
+ printf("===============================================================\n");
129
+ rewind(stdin);
130
+ getchar();
131
+ system("cls");
132
+ }
133
+ }
100
134
 
101
135
  //=================================================
102
136
  //読み込み処理

1

無駄な部分を省きました

2022/05/29 03:29

投稿

Hosyu
Hosyu

スコア1

test CHANGED
@@ -1 +1 @@
1
- ロードするときに正しくnDataがretrunで返ってきません。原因と解決策を教えてください
1
+ 人数設定処理ではちゃんと機能するが 、読み込み処理では同じnDateでも違う数字で返ってきてしいます。原因と解決策を教えてください
test CHANGED
@@ -1,5 +1,7 @@
1
1
  #include <stdio.h>
2
2
  #include <stdlib.h>
3
+ コード
4
+ ```
3
5
 
4
6
  //プロトタイプ宣言
5
7
  void Title(void); //タイトル画面表示
@@ -41,19 +43,6 @@
41
43
  //グローバル変数宣言
42
44
  int g_aData[DATA_MAX];
43
45
  Player g_aPlayer[PLAYER_MAX];
44
-
45
- //=================================================
46
- //メイン関数
47
- //=================================================
48
- void main(void)
49
- {
50
- SelectData();
51
-
52
- //キー入力待ち
53
- printf("Enterキーを入力してプログラムを終了してください\n");
54
- rewind(stdin);
55
- getchar();
56
- }
57
46
 
58
47
  //=================================================
59
48
  //選択処理
@@ -108,98 +97,6 @@
108
97
  } while (nSelData != MODE_FINISH);
109
98
  }
110
99
 
111
- //=================================================
112
- //タイトル表示
113
- //=================================================
114
- void Title(void)
115
- {
116
- printf("==============================================================\n");
117
- printf("| 名前、年齢、身長を決めることができる設定 |\n");
118
- printf("==============================================================\n");
119
- printf("\n以下の項目の中から選んでください\n");
120
- printf("%d.入力処理\n", MODE_INPUT);
121
- printf("%d.出力処理\n", MODE_OUTPUT);
122
- printf("%d.セーブ\n", MODE_SAVE);
123
- printf("%d.ロード\n", MODE_LOAD);
124
- printf("%d.人数設定\n", MODE_SETUP);
125
- printf("%d.プログラムを終了\n", MODE_FINISH);
126
- }
127
-
128
- //=================================================
129
- //入力処理
130
- //=================================================
131
- void InputData(int nData)
132
- {
133
- int nCntPlayer;
134
-
135
- if (nData <= PLAYER_MAX && nData > DATA_ZERO)
136
- {//人数設定済みの場合
137
- for (nCntPlayer = DATA_ZERO; nCntPlayer < nData; nCntPlayer++)
138
- {
139
- printf("\n=====%d人目のプレイヤーデータ設定=====\n", nCntPlayer + DATA_ONE);
140
- printf("名前を入力してください>\n");
141
- scanf("%s", &g_aPlayer[nCntPlayer].aName[DATA_ZERO]);
142
-
143
- printf("年齢を入力してください>\n");
144
- scanf("%d", &g_aPlayer[nCntPlayer].nAge);
145
-
146
- printf("身長を入力してください>\n");
147
- scanf("%f", &g_aPlayer[nCntPlayer].fHeight);
148
- }
149
- printf("入力が完了しました....(Enterキーで選択画面に戻ります)\n");
150
-
151
- rewind(stdin);
152
- getchar();
153
- system("cls");
154
-
155
- }
156
- else
157
- {//人数設定前の場合
158
- printf("====================== エラー 401 NotFound ======================\n");
159
- printf("人数設定がされていません。(Enterキーを押し選択画面に戻ってください)\n");
160
- printf("==================================================================\n");
161
- rewind(stdin);
162
- getchar();
163
- system("cls");
164
- }
165
-
166
- }
167
-
168
- //=================================================
169
- //書き込み処理
170
- //=================================================
171
- void SaveData(int nData)
172
- {
173
- FILE*pFile;
174
- if (g_aPlayer[DATA_ZERO].aName[DATA_ZERO] != NULL)
175
- {//名前のデータがある場合
176
- //キー入力待ち
177
- printf("Now Saving....(Enterキーを押して進んでください)\n");
178
- rewind(stdin);
179
- getchar();
180
-
181
- pFile = fopen(BINARI_FILE, "wb");
182
- fwrite(&nData, sizeof(int), DATA_ONE, pFile);
183
- fwrite(&g_aPlayer[DATA_ZERO], sizeof(Player), nData, pFile);
184
- fclose(pFile);
185
-
186
- //キー入力待ち
187
- printf("セーブが完了しました....(Enterキーで選択画面に戻ります)\n");
188
- rewind(stdin);
189
- getchar();
190
- system("cls");
191
- }
192
- else
193
- {//名前のデータがなかった場合
194
- printf("==================== エラー 402 NotFound =====================\n");
195
- printf(" プレイヤーデータが入力されていません\n");
196
- printf(" 選択画面で%dを選択してください(Enterキーで選択画面に戻ります)\n", MODE_INPUT);
197
- printf("===============================================================\n");
198
- rewind(stdin);
199
- getchar();
200
- system("cls");
201
- }
202
- }
203
100
 
204
101
  //=================================================
205
102
  //読み込み処理
@@ -241,55 +138,6 @@
241
138
  }
242
139
 
243
140
  //=================================================
244
- //出力処理
245
- //=================================================
246
- void OutputData(int nData)
247
- {
248
- int nCntPlayer;
249
- if (nData <= PLAYER_MAX && nData > DATA_ZERO)
250
- {
251
- if (g_aPlayer[DATA_ZERO].aName[DATA_ZERO] != NULL)
252
- {//名前のデータがある場合
253
- for (nCntPlayer = DATA_ZERO; nCntPlayer < nData; nCntPlayer++)
254
- {
255
- printf("\n%d人目のプレイヤーデータ\n", nCntPlayer + DATA_ONE);
256
- printf("ユーザー名:%s\n", &g_aPlayer[nCntPlayer].aName[DATA_ZERO]);
257
-
258
- printf("年齢:%d\n", g_aPlayer[nCntPlayer].nAge);
259
-
260
- printf("身長%.1fCM\n", g_aPlayer[nCntPlayer].fHeight);
261
- }
262
- printf("全データの出力が完了しました....(Enterキーで選択画面に戻ります)\n");
263
- rewind(stdin);
264
- getchar();
265
- system("cls");
266
- }
267
- else
268
- {//名前のデータがなかった場合
269
- printf("================ エラー 404 NotFound ================\n");
270
- printf("プレイヤーデータが読み込まれていません\n");
271
- printf("プレイヤーデータを入力しセーブしてください\n");
272
- printf("またはロードを行ってください(Enterキーで選択画面に戻ります)\n");
273
- printf("========================================================\n");
274
- rewind(stdin);
275
- getchar();
276
- system("cls");
277
- }
278
- }
279
- else
280
- {
281
- printf("================ エラー 405 NotFound ================\n");
282
- printf("プレイヤーデータが読み込まれていません\n");
283
- printf("プレイヤーデータを入力しセーブしてください\n");
284
- printf("またはロードを行ってください(Enterキーで選択画面に戻ります)\n");
285
- printf("========================================================\n");
286
- rewind(stdin);
287
- getchar();
288
- system("cls");
289
- }
290
- }
291
-
292
- //=================================================
293
141
  //設定処理
294
142
  //=================================================
295
143
  int SetupData(void)