gpt4 book ai didi

C++打印数组

转载 作者:行者123 更新时间:2023-11-28 02:51:34 25 4
gpt4 key购买 nike

所以我有一个二维数组用作网格图,其中每个数组 block 都是 map 上的一个空间。

所以在我的 main() 中,我用 初始化了数组“Map”

char Map[ROWS][COLS]={'x'};

ROWS = 10 和 COLS = 20

稍后我调用函数 PrintMap

void PrintMap(const char Map[ROWS][COLS], const bool showTreasure)
{


for (int countr=0; countr<ROWS;countr++){
for (int countc=0; countc<COLS;countc++){ //print map
if (!showTreasure){
if (Map[countr][countc]!='T')
cout << Map[countr][countc];
else
cout << '*';
} else {

cout << Map[countr][countc];

}
}
cout << endl;
}



}

网格上的一个空间是游戏中宝藏或目标所在的位置。在 PrintMap 的参数中是 bool showTreasure,它是您是否要在 map 上显示或隐藏它。

因此数组中的一个空格将是“T”,而所有其他空格将是“*”、“X”或“P”。

* 是什么都没有的地方。

所以 if 语句应该说:如果 showTreasure 为假(意味着你想隐藏 'T'):如果不是 'T',则打印数组中的内容;如果不是,则打印 '*'是一个T。

现在我的问题是,即使我用 200 *s 初始化了数组,当我运行程序时它也只打印出 1 *。

最佳答案

如果你的初始化是这一行:

char Map[ROWS][COLS]={'x'};

然后矩阵被初始化为单个 x 后跟 199 个 NULL 字符。

请参阅 https://stackoverflow.com/a/201116/29157 上的精彩解释.

有关 std::fill() 的更多信息,请参阅 https://stackoverflow.com/a/3948314/29157

感谢您的提示,CantChooseUsernames !

关于C++打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22925146/

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