内容は、基底クラスで文字列ファイルの読み込み、
数字変換して用意した二次元配列への格納。
継承クラスでその二次元配列の中身を確認してみる、といった流れです。
が、ファイルのデータ内容が二次元配列の中にちゃんと入っていないようで
確認するとその値の数が合いません。。。。
なにが悪いのでしょうか??以下、ソースです。
<●StageDataBase.h(基底クラス>
#include "DxLib.h"
#include<fstream>
#include<string>
#include <iostream>
#pragma once
using namespace std;
#define LINE 8
#define COL 8
class StageDataBase
{
public:
StageDataBase(void);
~StageDataBase(void);
void LoadMapData(int,int,string);
protected:
int line;
int count;
int sum;
int nokorinoketa;
int hairetu[LINE][COL];
};
<●StageDataBase.cpp>
#include "StageDataBase.h"
StageDataBase::StageDataBase(void){
line = 0;
count = 0;
sum = 0;
nokorinoketa=0;
}
StageDataBase::~StageDataBase(void){}
void StageDataBase::LoadMapData(int y,int x,string s){
ifstream ifs(s);
string buf[LINE];
while(ifs && getline(ifs,buf[line])){
line++;}
for(int i=0; i<y; i++){
for(int j=0; j<x; j++){
if(j < x-1){
sum = buf[i][count]-48;
count++;
while(isdigit(buf[i][count])){
sum = sum*10 + (buf[i][count])-48;
count++;
}
hairetu[i][j] = sum;
count++;
}
if(j == x-1){//最後の数字
nokorinoketa = buf[i].size()-count;
sum = buf[i][count] - 48;
while(nokorinoketa > 1){
count++;
sum = sum*10 + (buf[i][count])-48;
nokorinoketa--;
}
hairetu[i][j] = sum;
}
}
count=0;
}
}
------------------------------------------------------------------------------------------------
<●GameStage.h(継承クラス>
#include "StageDataBase.h"
class GameStage: public StageDataBase {
public:
GameStage(void);
~GameStage(void);
void Initialize();
void Update();
void Draw();
};
<●GameStage.cpp>
#include "GameStage.h"
#include "DxLib.h"
GameStage::GameStage(void) {
StageDataBase::LoadMapData(LINE,COL,"maptest.csv");}
GameStage::~GameStage(void){}
void GameStage::Initialize(){}
void GameStage::Update(){}
void GameStage::Draw(){
int c=0; //表示位置をズラすための変数
//中身を確認するために、各値に反応させDrawさせてみるもファイル内の数と合わない、、、
for(int i=0; i<8; i++){
for(int j=0; j<8; j++){
if(hairetu[i][j] == 35){
DrawString(c,10,"35",GetColor(255,255,255));
}
if(hairetu[i][j] == 74){
DrawString(c,50,"74",GetColor(255,255,255));
}
if(hairetu[i][j] ==3){
DrawString(c,70,"3",GetColor(255,255,255));
}
if(hairetu[i][j] == 62){
DrawString(c,100,"62",GetColor(255,255,255));
}
}
c += 20;
}
}
http://ux.getuploader.com/zipcodezipcod ... aptest.csv
内容↓
0,0,0,0,9,0,0,45
0,3,3,62,3,3,62,0
0,3,3,3,3,3,3,0
0,3,62,3,35,35,3,44
0,3,62,3,35,35,3,0
0,3,62,3,35,35,3,0
0,3,3,3,3,3,3,0
0,0,0,43,74,3,0,0
今回のソースは制作中のものから問題の部分だけを抽出していますので
抜け、消し忘れ等あるかもしれませんが、ご了承ください。