读书人

求大神帮忙 小弟我要读取map

发布时间: 2013-11-18 00:11:49 作者: rapoo

求大神帮忙 我要读取地图.
这里不能上传文件,只能传代码,我的又是整个项目只能加QQ,54739330
#include "StdAfx.h"
#include "GameMap.h"

enum{
MAP_NONE,
MAP_WALL,
};
CGameMap::CGameMap(void)
{
m_pZoneMap=NULL;
}

CGameMap::~CGameMap(void)
{
NAVTEQ *pData =NULL;
map<int,NAVTEQ*>::iterator iter = m_pMapList.begin();
for (;iter != m_pMapList.end();iter++)
{
pData =(*iter).second;
delete pData;pData=NULL;
}
m_pMapList.clear();
}
void CGameMap::initMap(char *pFileName)
{
ifstream infile(pFileName);
if (infile.good())
{
int iNumber=100;
NAVTEQ *pData=NULL;
while(true)
{
pData= new NAVTEQ;
for (int i=0;i< MAX_ROW;i++)
{
for(int j=0;j< MAX_COL;j++)
{
infile>>pData->iData[i][j];

pData->iMapID=iNumber;


}
}
m_pMapList[iNumber]=pData;
iNumber++;
}
}
infile.close();
}
void CGameMap::upData()
{

}

void CGameMap::pictuer()
{
for (int i=0;i<MAX_ROW;i++)
{
for (int j=0;j<MAX_COL;i++)
{
if (m_pZoneMap->iData[i][j]!=MAP_NONE)
{
cout<<"";
}
else
{
cout<<" ";
}
}
}
}
void CGameMap::setMapID(int iMapID)
{
map<int,NAVTEQ*>::iterator iter = m_pMapList.find(iMapID);
if (iter != m_pMapList.end())
{
m_pZoneMap =(*iter).second;
}

}
这是MAP.CPP的代码 不知道错在哪里
[解决办法]
错误也不说啥现象,看了下,貌似initMap函数里那个while(true)没有退出条件,看上去你外层的if 判断条件应该才是while循环的退出条件吧?

把外面的if去掉while条件改成while(infile.good())

另外发代码也有模版的呀。。。这么看多不舒服

读书人网 >C++

热点推荐