C++打印数组

标签 c++ arrays printing

所以我有一个二维数组用作网格图,其中每个数组 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/

相关文章:

c++ - 程序输出 "Heads"而不管随机生成的答案

c++ - 二分无向图测试: Converting to check nodes with strings instead of integers

c++ - 关于继承和引用的C++问题

python - 如何使用多个参数正确格式化 Python Print?

JAVA - 打印 XPS 时不弹出文件名/位置

c++ - IPP 或 JetDirect 服务器实现

c++ - Prev_permutation 与 Next_permutation 难度

javascript - 在 JavaScript 中克隆一个对象

php - 修改 php natcasesort 所以 'letters only' 先来

javascript - 将对象属性值转换为 float