質問編集履歴

3

追加

2022/09/09 08:55

投稿

ass
ass

スコア13

test CHANGED
File without changes
test CHANGED
@@ -9,7 +9,7 @@
9
9
  ### 発生している問題・エラーメッセージ
10
10
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-09/32f1708b-0fa0-4501-8c2a-3450656d5174.png)
11
11
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-09/b9546ba9-5e3f-4114-8ea2-a3b9b460ef87.png)
12
-
12
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-09-09/cfa5ceb1-f05f-43e6-99f5-01bb65422f67.png)
13
13
 
14
14
  ### 該当のソースコード
15
15
 

2

文法の修正

2022/09/09 08:46

投稿

ass
ass

スコア13

test CHANGED
File without changes
test CHANGED
@@ -93,6 +93,83 @@
93
93
  こちらのサイトを参考に、
94
94
  csv読み込みの部分を置き換えてみたのですが、すべて0でした。
95
95
  ```C++
96
+ CONTROLL::CONTROLL()
97
+ {
98
+ player = new PLAYER;
99
+
100
+ back = new BACK;
101
+
102
+ FILE* fp;
103
+ ENEMYDATA data[ENEMY_NUM] = {};
104
+ char buf[100] = {};
105
+ int c;
106
+ int col = 1;
107
+ int row = 0;
108
+ errno_t error;
109
+
110
+ memset(buf, 0, sizeof(buf));
111
+ error = fopen_s(&fp,"enemydata.csv", "r");
112
+
113
+ //ヘッダ読み飛ばし
114
+ //while (fgetc(fp) != '\n');
115
+
116
+ while (error == 0) {
117
+ while (1) {
118
+
119
+ c = fgetc(fp);
120
+
121
+ //末尾ならループを抜ける。
122
+ if (c == EOF)
123
+ goto out;
124
+
125
+ //カンマか改行でなければ、文字としてつなげる
126
+ if (c != ',' && c != '\n')
127
+ strcat(buf, (const char*)&c);
128
+ //カンマか改行ならループ抜ける。
129
+ else
130
+ break;
131
+ }
132
+ //ここに来たということは、1セル分の文字列が出来上がったということ
133
+ switch (col) {
134
+ //1列目は敵種類を表す。atoi関数で数値として代入。
135
+ case 1: data[row].type = atoi(buf); break;
136
+ //2列目は弾種類。以降省略。
137
+ case 2: data[row].stype = atoi(buf); break;
138
+ case 3: data[row].m_pattern = atoi(buf); break;
139
+ case 4: data[row].s_pattern = atoi(buf); break;
140
+ case 5: data[row].in_time = atoi(buf); break;
141
+ case 6: data[row].stop_time = atoi(buf); break;
142
+ case 7: data[row].shot_time = atoi(buf); break;
143
+ case 8: data[row].out_time = atoi(buf); break;
144
+ case 9: data[row].x = atoi(buf); break;
145
+ case 10: data[row].y = atoi(buf); break;
146
+ case 11: data[row].speed = atoi(buf); break;
147
+ case 12: data[row].hp = atoi(buf); break;
148
+ case 13: data[row].item = atoi(buf); break;
149
+ }
150
+ //バッファを初期化
151
+ memset(buf, 0, sizeof(buf));
152
+ //列数を足す
153
+ ++col;
154
+
155
+ //もし読み込んだ文字が改行だったら列数を初期化して行数を増やす
156
+ if (c == '\n') {
157
+ col = 1;
158
+ ++row;
159
+ }
160
+ }
161
+ out:
162
+ //敵クラス生成
163
+ for (int i = 0; i < ENEMY_NUM; ++i) {
164
+ enemy[i] = new ENEMY(data[i].type, data[i].stype, data[i].m_pattern, data[i].s_pattern, data[i].in_time, data[i].stop_time, data[i].shot_time,
165
+ data[i].out_time, data[i].x, data[i].y, data[i].speed, data[i].hp, data[i].item);
166
+ printfDx("読み込み中");
167
+ printfDx("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",data[i].type, data[i].stype, data[i].m_pattern, data[i].s_pattern, data[i].in_time, data[i].stop_time, data[i].shot_time,
168
+ data[i].out_time, data[i].x, data[i].y, data[i].speed, data[i].hp, data[i].item);
169
+ }
170
+ }
171
+ ```
172
+ ```C++
96
173
  vector<string> split(string& input, char delimiter)
97
174
  {
98
175
  istringstream stream(input);

1

誤字

2022/09/09 08:45

投稿

ass
ass

スコア13

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
  https://bituse.info/game/shot/11
4
4
  こちらのサイトを参考にさせていただいているのですが、csvファイルを読み込むという段階でエラーになってしまって、
5
5
  https://cvtech.cc/readcsv/
6
- こちらのサイトを参考に読み込む部分を改良してみたのですが、何も読み込めていなく、全部が0でした。
6
+ こちらのサイトを参考に読み込む部分を改良してみたのですが、何も読み込めていなく、全部が初期値のままでした。
7
7
 
8
8
 
9
9
  ### 発生している問題・エラーメッセージ