Имеется два способа очистки экрана в консольной программе. Первый способ состоит в том, чтобы использовать системную функцию языка C во время выполнения как ниже указано:
#include <stdlib.h>
void main()
{
system("cls");
}
|
Системная функция вызывает команду cls, предусмотренную интерпретатором команд, чтобы очистить экран.
Второй - состоит в том, чтобы записать, что функция программно очищает экран, используя функции FillConsoleOutputCharacter и FillConsoleOutputAttribute . Нижеследующий типовой код демонстрирует эту методику.
void cls( HANDLE hConsole )
{
COORD coordScreen = { 0, 0 }; // исходная позиция для курсора
DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi; DWORD dwConSize; // Получим число символьных ячеек в текущем буфере.
if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
// Заполним полностью экран пробелами.
if( !FillConsoleOutputCharacter( hConsole, (TCHAR) ' ',
dwConSize, coordScreen, &cCharsWritten ))
return;
// Получим текущие атрибуты текста.
if( !GetConsoleScreenBufferInfo( hConsole, &csbi ))
return;
// Установим соответствующие атрибуты буфера.
if( !FillConsoleOutputAttribute( hConsole, csbi.wAttributes,
dwConSize, coordScreen, &cCharsWritten ))
return;
// Поместим курсор в его изначальные координаты SetConsoleCursorPosition( hConsole, coordScreen ); } |