嘿伙计们这不应该那么难,但为什么呢
fscanf(fp, "%d", Map.tile[x][y]);
瓷砖部分表示无法解析Field'瓷砖' 抱歉有初学者问题,但我猜它应该是char到int转换的问题。 我该如何解决这个问题? 谢谢, waco001
void MapManager::loadMap(char *name){
int x, y;
FILE *fp;
fp = fopen(name, "rb");
const int MAX_MAP_Y = 32;
const int MAX_MAP_X = 32;
typedef struct Map
{
int tile[MAX_MAP_Y][MAX_MAP_X];
char xs;
} Map;
/* If we can't open the map then exit */
if (fp == NULL)
{
printf("Failed to open map %s\n", name);
exit(1);
}
/* Read the data from the file into the map */
for (y=0;y<MAX_MAP_Y;y++)
{
for (x=0;x<MAX_MAP_X;x++)
{
fscanf(fp, "%d", Map.tile[x][y]);
}
}
/* Close the file afterwards */
fclose(fp);
}
答案 0 :(得分:2)
Map
是一种类型,但您需要一个对象。你可以,例如,使用
Map map;
// ...
if (fscanf(fp, "%d", map.tile[x][y]) != 1) {
fprintf(stderr, "ERROR: failed to read map.tile[%d][%d]\n", x, y);
}