Очистка экрана


Имеется два способа очистки экрана в консольной программе. Первый способ состоит в том, чтобы использовать системную функцию языка 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 );
}

 

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz