Как очистить консоль в сборке?
Я ищу функцию API Win32, которая очищает консоль, так же, как cls
Команда Спасибо!
Devjeet
2 ответа
Решение
Это довольно старый, но все еще должен работать. Преобразование в язык ассемблера оставлено читателю как упражнение, но не должно быть очень сложным (большинство из них - просто вызовы функций, а умножение тривиально):
#include <windows.h>
void clear_screen(char fill = ' ') {
COORD tl = {0,0};
CONSOLE_SCREEN_BUFFER_INFO s;
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(console, &s);
DWORD written, cells = s.dwSize.X * s.dwSize.Y;
FillConsoleOutputCharacter(console, fill, cells, tl, &written);
FillConsoleOutputAttribute(console, s.wAttributes, cells, tl, &written);
SetConsoleCursorPosition(console, tl);
}
Нет Win32 API, который напрямую очищает консоль - вам нужно использовать что-то вроде FillConsoleOutputCharacter.