在 C++ 中填充二维字符数组的问题

Issue filling a 2d array of chars in c++

我正在编写一个涉及二维值数组的程序,我计划使用 ANSI 转义码将它们打印到终端。为了测试我的代码以使用 ANSI 转义码打印值,我用渐变填充了数组。但是,当我尝试这样做时,只有顶行有渐变。我不知道我在这里做错了什么。我试过使用 ints 而不是 chars,但我尝试过的都没有用。

我的代码:

#include <iostream>


char grid[64][64];

void printGrid(void) {
    for (char i = 0; i < 64; i++) {
        for (char j = 0; j < 64; j++) {
            char currentCell = grid[(int)i][(int)j];
            std::cout << '3' << "[48;2;" << std::to_string(currentCell) << ';' << std::to_string(currentCell) << ';' << std::to_string(currentCell) << "m  ";
        }
        std::cout << '3' << "[0m" << std::endl;
    }
}

int main(void) {
    for (char i; i < 64; i++) {
        for (char j; j < 64; j++) {
            grid[(int)i][(int)j] = ((j+1)*2)-1;
        }
    }
    
    printGrid();
    return 0;
}

问题隐藏在众目睽睽之下。我忘记在某些 for 循环中将迭代器初始化为 0。

for (char i; i < 64; i++) forgot to set initial value to 0, the same for J loop – Iłya Bursov