所以基本上我正在用 C 语言编写一个基于文本的 rpg,我想创建一个地图系统。基本上,我遇到问题的功能是从如下所示的文件中读取“文本映射”:
----------\n
|c x [\n
| x |\n
] |\n
----------\0
它基本上是使用二维数组构建的。*编辑我添加了地图在实际数组中的样子。是不是因为我不喜欢终止每一行
这是我遇到问题的功能:
char** readMap(char* map_to_read,int h, int w){
FILE* fp;
int a = 0, b = 0;
char map_return[h][w];
char* c;
fp = fopen(map_to_read, "r");
for(a = 0; a < h; a++){
for(b = 0; b < w; b++){
c = (char*)malloc(sizeof(char) * w);
map_return[a][b] = fgets(c, w, fp);
printf("%s", c);
}
free(c);
}
fclose(fp);
return map_return;
}
一切都读到最后,因为 fgets() 没有读取 EOL。这是 printf 从内部看的样子:http: //i.imgur.com/KojbjDm.png
我可以为此获得第二双眼睛吗?