私はゲームを作成していて、マップデータをサイズの2次元配列に保存しました[34][10]。もともと私は、配列を埋めるための単純な関数を使用してマップを生成し、次のコードを使用してこのデータをファイルに保存しました。
ofstream myFile;
myFile.open("map.txt");
for ( int y = 0 ; y < MAP_HEIGHT ; ++y )
{
for ( int x = 0 ; x < MAP_WIDTH ; ++x )
{
myFile << m_acMapData[x][y];
}
myFile << '\n';
}
myFile.close();
これにより、希望どおりのテキストファイルが出力されます。ただし、次のコードを使用して読み戻そうとすると、アクセス違反が大量に発生し、実行時にクラッシュします。
ifstream myFile;
int i=0;
int j=0;
char line[MAP_WIDTH];
myFile.open("map.txt");
while (!myFile.eof())
{
myFile.getline(line, MAP_WIDTH);
for ( i=0; i<MAP_WIDTH; i++ )
{
m_acMapData[i][j] = line[i];
}
++j;
cout << line;
}
誰かが問題が何であるか知っていますか?