CodeNet / Языки программирования / C / C++ / Microsoft Visual C++ / FAQ - Часто задаваемые вопросы / Visual C++ FAQ
Как очистить экран в консоли Win32?
Как очистить экран в консоли Win32?
Можно использовать функцию ScrollConsoleScreenBuffer или следующий код:
COORD c; c.X = 0; c.Y = 0; CONSOLE_SCREEN_BUFFER_INFO bi; DWORD written; GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), bi); FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ' ', bi.dwSize.X*bi.dwSize.Y, c, written); FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGRUND_BLUE /*цвет*/, bi.dwSize.X*bi.dwSize.Y, c,written);
Оставить комментарий
Комментарии
1.
+1 / -0
17 февраля 2008, 07:05:44
ну не мог пройти просто так=)...
запоздало, но всеже:
не проще? system("cls");
запоздало, но всеже:
не проще? system("cls");
2.
23 апреля 2005, 06:33:45
Этот код использовать нельзя, он просто не будет компиляться, хотя идея верна. В нём как минимум 4 ошибки.
Вот исправленный фрагмент:
void cls_win32 ()
{
COORD c;
c.X = 0;
c.Y = 0;
CONSOLE_SCREEN_BUFFER_INFO bi;
DWORD written;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &bi);
FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ' ',bi.dwSize.X*bi.dwSize.Y, c, &written);
FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_GREEN | FOREGROUND_BLUE /*????*/, bi.dwSize.X*bi.dwSize.Y, c,&written);
}
Вот исправленный фрагмент:
void cls_win32 ()
{
COORD c;
c.X = 0;
c.Y = 0;
CONSOLE_SCREEN_BUFFER_INFO bi;
DWORD written;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &bi);
FillConsoleOutputCharacter(GetStdHandle(STD_OUTPUT_HANDLE), ' ',bi.dwSize.X*bi.dwSize.Y, c, &written);
FillConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_GREEN | FOREGROUND_BLUE /*????*/, bi.dwSize.X*bi.dwSize.Y, c,&written);
}