在 C++ 中填充二维字符数组的问题
Issue filling a 2d array of chars in c++
我正在编写一个涉及二维值数组的程序,我计划使用 ANSI 转义码将它们打印到终端。为了测试我的代码以使用 ANSI 转义码打印值,我用渐变填充了数组。但是,当我尝试这样做时,只有顶行有渐变。我不知道我在这里做错了什么。我试过使用 int
s 而不是 char
s,但我尝试过的都没有用。
我的代码:
#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
我正在编写一个涉及二维值数组的程序,我计划使用 ANSI 转义码将它们打印到终端。为了测试我的代码以使用 ANSI 转义码打印值,我用渐变填充了数组。但是,当我尝试这样做时,只有顶行有渐变。我不知道我在这里做错了什么。我试过使用 int
s 而不是 char
s,但我尝试过的都没有用。
我的代码:
#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