敵のステータスをファイルで管理したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
sadora3
記事: 175
登録日時: 11年前

敵のステータスをファイルで管理したい

#1

投稿記事 by sadora3 » 8年前

敵のステータスが記載されたtxtを読み込み、その内容をENEMYクラスのメンバ変数に代入する処理をlistを用いて行いたいです。
以下のプログラムを組んでみましたが、これだと敵一体分しか読み込めません。
これをlistを用いて、txtに書いてある敵の数だけ読み込み、敵の数だけ画面に出力したいのですが、どうすればいいのでしょうか?

OS:Windows10
コンパイラ:VisualStudio2010
言語:C++

コード:

#include<iostream>

#pragma warning(disable:4996)

using namespace std;

struct VECTOR2{
	float X;
	float Y;
};

class ENEMY{
private:
	VECTOR2 Pos;
	int Hp;
	int Atk;
	int Def;
	int Eva;
public:
	void Init();
	void Draw();
};

int main(){
	ENEMY Enemy;

	Enemy.Init();
	Enemy.Draw();

	rewind(stdin);
	getchar();
	return 0;
}

void ENEMY::Init(){
	FILE* fp = fopen("敵ステータス.txt", "r");
	char gomi[256];
	fgets(gomi, 256, fp);
	fscanf(fp, "%f %f %d %d %d %d", &Pos.X, &Pos.Y, &Hp, &Atk, &Def, &Eva);
	fclose(fp);
}

void ENEMY::Draw(){
	cout << "座標X:" << Pos.X << endl;
	cout << "座標Y:" << Pos.Y << endl;
	cout << "HP:" << Hp << endl;
	cout << "攻撃力:" << Atk << endl;
	cout << "防御力:" << Def << endl;
	cout << "回避:" << Eva << endl;
}
敵のステータスが記載されている「敵ステータス.txt」です。全てタブで区切られています。

コード:

座標X(0~799)	座標Y(0~599)	HP(1~9999)	攻撃力(1~255)	防御力(1~255)	回避(0~100)
612	354	600	97	64	31
576	124	764	42	201	3
13	526	682	84	37	0


“C言語何でも質問掲示板” へ戻る