Проблема с "puts()", он почему то начинает выводить массив то с 0 числа, то с 1
Я писал графику для игры в консоли, но столкнулся с проблемой при выводе самого поля через puts(), с printf() все хорошо работает но задержка больше.
Само поле двумерный масив символов. Когда запускаешь игру оно начинает дергаться вверх, вниз.
Я переписал это все отдельно от игры в отдельном проекте и puts() никак не хотел работать нормально с двумерным массивом, а если я его делал одномерным то все работало без деранья.
Вот мой код:
#include <stdio.h>
#include <windows.h>
#define w 119
#define h 30
char pole[h][w];
void setCursor(int x, int y) // функция перемещения курсора
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
void offCursor() // функция отключения видимости курсора
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO structCursorInfo;
GetConsoleCursorInfo(handle, &structCursorInfo);
structCursorInfo.bVisible = FALSE;
SetConsoleCursorInfo(handle, &structCursorInfo);
}
int main() {
offCursor();
for (int i = 0; i < h; ++i) {
for (int j = 0; j < w; ++j) {
pole[i][j] = '#';
}
}
for (int i = 1; i < h-1; ++i) {
for (int j = 1; j < w-1; ++j) {
pole[i][j] = ' ';
}
}
do{
setCursor(0,0);
for (int i = 0; i < h; ++i)
puts(pole[i]);
} while (GetKeyState(VK_ESCAPE) >= 0);
return 0;
}
Вот обычное поле, то как оно должно выглядеть:
И иногда оно вот так дергается:

