Я пытаюсь просто распечатать пространство в своем «холсте» (например, с координатами (2,2)), отредактировав сетку 80x20, сделанную █ блоками в окне консоли.2D-массивы и координаты
Пожалуйста, предложите мне лучшие способы создания сетки в первую очередь (я только что узнал для каждого-петли)
Почему я получаю эти 3-х символов после запуска программы?
Почему не пространство на блоке (2,2), но, очевидно, на первой строке где-то в середине?
Код:
#include <iostream>
int main()
{
uint8_t block {219}; // █
uint8_t space {32}; // ' '
uint8_t screen[80][20] {};
for (auto &row : screen) // make the "canvas"
for (auto &col : row)
col = block;
for (int row = 1; row <= 80; ++row)
{
for (int col = 1; col <= 20; ++col)
{
if (col == 2 && row == 2)
screen[row][col] = space;
}
}
std::cout << *screen;
return 0;
}
Все с струна стиль должен быть нулем. – NathanOliver
Если вы увеличиваете столбцы на 1, вы можете поместить символы новой строки в последний столбец. Это должно упростить печать, так как вы можете распечатать весь массив с помощью одного оператора (не забудьте зарезервировать дополнительный слот для завершающего символа nul). –