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