Очистка определенной строки консоли

Функция для очистки определенной строки в консоли Windows-приложения.

void clearRow (int row)
{
// получаем хэндл окна консоли
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
// получаем координаты строки для очистки
COORD coord = {0, row - 1};

// получаем данные из буфера вывода консоли
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(hStdOut, &csbi);

// заполняем строку пробелами
FillConsoleOutputCharacter(hStdOut, ' ', 80, coord, NULL);
// сбрасываем позицию курсора
SetConsoleCursorPosition(hStdOut, csbi.dwCursorPosition);
}

Использовать так:

#include <iostream>
#include <windows.h>

int main ()
{
// заполняем экран мусором
for (int i = 0; i < 80*10; i++)
std::cout << "0";

// ожидаем реакции пользователя
std::cin.get ();

// очищаем четвертую строку
clearRow (4);
// Ожидаем реакции пользователя и завершаем работу
std::cin.get ();
return EXIT_SUCCESS;
}

Поблагодарить автора

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>