Как менять конкретную строку в консоли, а не выводить новую?

Хочу сделать простой индикатор прогресса, что-то типа "1/10 итераций выполнено". Я знаю и номер текущей итерации и их общее количество, но только не знаю, как менять конкретную строку в консоли, а не выводить новую.


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

Автор решения: Антон

Можно сделать что-то вроде этого если прям по-простому и без заморочек

#if defined (_WIN32) || defined (_WIN64)
#include <windows.h>
    #define HIDECUR() SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &(CONSOLE_CURSOR_INFO){.dwSize = 100, .bVisible = FALSE});
    #define SETPOS(x,y)  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), (COORD){.X = x, .Y = y})
#else
    #define HIDECUR() printf("\x1b[?25l") 
    #define SETPOS(x,y) printf("\x1b[%d;%dH", y, x)
#endif
→ Ссылка