テキスト ファイルの文字を 2 次元配列 (mapLayout) に入力しようとしています。
printf を使用して文字を読み取り中に出力すると、すべて問題ないように見えますが、文字を配列に追加する実際の行がクラッシュを引き起こしているようです。
#include <stdio.h>
#include <stdlib.h>
void createMap();
//height of file being read
int mapHeight, mapWidth = 20;
char mapLayout[20][20];
int main()
{
createMap();
return 0;
}
//read in string from file and populate mapLayout with chars
void createMap(){
FILE *file = fopen("map.txt", "r");
int col, row = 0;
int c;
if (file == NULL)
return NULL; //could not open file
while ((c = fgetc(file)) != EOF)
{
printf("%c", c);
printf("\nx:%d, y:%d\n", col, row);
if(c == '\n'){
row++;
col = 0;
}else{
mapLayout[col][row] = c; //<-- This line seems to be the problem
col++;
}
}
return;
}
私が読んでいるファイルは、地図の 20 x 20 表現です。ここにあります:
xxxxxxxxxxxxxxxxxxxx
xA x
x x
x x
xxxxxxxxxxxxxxxx x
x x
x x
x x
x x
x x
x xxxxxxxxxxxxxxx
x x x
x x x
x x x
x x x
x x x
x xxxxxxx x
x x
x Bx
xxxxxxxxxxxxxxxxxxxx
どんな助けでも大歓迎です。