Проблема с "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;
}

Вот обычное поле, то как оно должно выглядеть:

введите сюда описание изображения

И иногда оно вот так дергается:

введите сюда описание изображения


Ответы (0 шт):