gpt4 book ai didi

c++ - 二维字符数组中出现奇怪的字符

转载 作者:行者123 更新时间:2023-11-28 02:49:33 24 4
gpt4 key购买 nike

我正在编写一个使用“网格”的游戏,这是我使用二维结构数组创建的,其中包含一个 char 值和一个 bool 值。在我程序的 .h 文件中,我声明了结构并创建了网格。

struct Tile
{
char letter;
bool active;
};

Tile grid [6][5];

在我的 .cpp 文件中,我初始化网格,以便所有值都为空。

 for (int i = 0; i < 7; ++i)
{
for (int j = 0; j < 6; ++j)
{
grid[i][j].active == false;
//grid[i][j].letter = '.';
//it always crashes when i try doing the above line
}

}

下面是打印网格的函数printGrid

for (int i = 0; i < 7; ++i)
{
for (int j = 0; j < 6; ++j)
{
cout << i;
//the above statement is for debugging purposes so that I can see
//which column easier
std::cout << grid[i][j].letter;
}
std::cout << std::endl;
}
cout << "1 2 3 4 5 6" << endl;

现在,最初的目标是让默认的 .letter 值为“.”。但是出于某种原因,当我尝试这样做时,出现了灾难性的结果;屏幕上充满了移动速度如此之快的角色,我无法完全看清它们是什么(我记得一些心形和笑脸),以及令人讨厌的快速哔哔声。所以我决定离开那条评论线。

当我在没有该行的情况下运行程序时,由于某种原因,“网格”总是在某些位置显示字符,而无需用户输入任何内容,或者我没有明确声明该位置的任何值。例如,从左数第一列和底行的位置,总是有一个字符(grid[6][5].letter)。每次我运行程序时它都会改变,我看到它的范围从一颗心到字母 A,再到西类牙语的“n”(上面有一个 ~ 的那个)。

我心想,“嘿,因为 grid[6][5] 是总是有问题的地点,我将只声明这些个别地点的 .letter 值为空白 (' ')!”。那没有用。

我不知道为什么这个地方给我带来麻烦。还有其他区域会有异常特征,但我可以通过将它们的 .letter 值设置为空白来中和它们。如果有人对如何解决此问题有任何想法,请

编辑:出现在grid[6][0]、grid[6][1]、grid[6][5]和grid[6][4]的其他异常字符,都使我的程序如果我将它们设置为空白 (' '),则会在后期崩溃;但是,消隐网格 [6][5] 是导致它一开始就崩溃的原因。我尝试使用调试器,但它无法告诉我任何有用的信息。

最佳答案

你快跑完数组了

Tile grid [6][5];需要是 Tile grid [7][6];

或者你只需​​要循环到i < 6j < 5 .

关于c++ - 二维字符数组中出现奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23369405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com