Как менять конкретную строку в консоли, а не выводить новую?
Хочу сделать простой индикатор прогресса, что-то типа "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