好的,我在这里遇到一个奇怪的问题。我正在开发一个程序,其中从文件中读取由各种字符表示的“迷宫”并由计算机解决。
现在,我正在尝试将迷宫读取到2d数组中。我现在也将迷宫打印了两次,一次是在将其读入内存时,另一次是为了确保所有内容正确保存。第一次打印正确,但是第二次打印显示数组的最后一行以某种方式覆盖了所有其他行。任何访问数组特定值的尝试都会确认这一点。为了让您了解我在说什么,这是迷宫应该是什么样子,以及第一次印刷时显示的内容:
S#.#...##.G
..##..#..#.
.#..#.#....
...##..#...
..#.....###
#...#...#..
..#..#.#...
.####.....#
...##.##...
.#....####.
###........
同时,这是第二次打印显示的内容,以及任何访问阵列的尝试都会告诉您:
###........
###........
###........
###........
###........
###........
###........
###........
###........
###........
###........
显然,这让我很沮丧。无论如何,这是读取和打印数组的代码:
ifstream input(fileLocation);
//get the maze dimensions
input >> dimX;
input >> dimY;
maze = new char[(dimX - 1), (dimY - 1)]; //Allocate memory for the maze
//read the maze into memory and prints it for reference
cout << "Initial Maze:" << endl;
for (int i = 0; i < dimY; i++) {
for (int j = 0; j < dimX; j++) {
input >> maze[i, j];
cout << maze[i, j];
//recognizing the start space
if (maze[i,j] == 'S') {
currPos = &maze[i,j];
}
else if (maze[i, j] == 'G') { //recognizing the end space
goalX = j;
goalY = i;
}
}
cout << endl;
}
input.close();
//second print for test
for (int i = 0; i < dimX; i++) {
for (int j = 0; j < dimY; j++) {
cout << maze[i, j];
}
cout << endl;
}
任何帮助将不胜感激。如果您需要更多信息,请随时与我们联系。