C++迷宫问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 07:38:41
用数列做一个由#和空格做的迷宫,
我的思路是做个数组,从文件读入,但是读近来了是string 的,怎么把转换成数组

比如一个10*10的地图。 地图数据在一个“map.dat”的文件中。

“map.dat”文件
##########
# #
##### #
# ##### #
# # ##
# #### ##
# ### ##
## #### ##
## ##
##########

#define MAP_WD 10
#define MAP_HT 10

char filemap[MAP_HT][MAP_WD];

FILE *fp=fopen("map.dat","r");
//文件读进来后,本身就是以字符数组的形式存储了,
for(int i=0; i<MAP_HT; i++)
{
fread(filemap[i],MAP_WD,1,fp);
//为使得地图在文件中看上去清楚,所以在每行的末尾加一个回车,
//但这回车不会存进数组中 ,所以要跳过这个回车;将文件指针后移一个;
fseek(pf,1,SEEK_CUR);
}
fclose("map.dat");

for(int i=0; i<MAP_HT; i++)
for(int j=0; j<MAP_WD; j++)
{
if(filemap[i][j]=='#') //当文件中为#时 地图该点是墙壁
画墙壁函数;
else //当文件中为 时 地图该点是通道
画通道函数;
}

# 与空格 是字符
所以你要存 字符就必须用 字符数组
houwenjie_0 的回答也对

只有两种字符#和空格
只对字符进行比较
将#和空格转化成1和0