【发布时间】:2016-01-07 11:00:06
【问题描述】:
我在 C++ 中发现了一个删除控制台内容的函数。我测试了它并且它有效,但我不明白它。这是函数:
void ClearScreen()
{
HANDLE hStdOut;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD count;
DWORD cellCount;
COORD homeCoords = { 0, 0 };
hStdOut = GetStdHandle( STD_OUTPUT_HANDLE );
if (hStdOut == INVALID_HANDLE_VALUE) return;
if (!GetConsoleScreenBufferInfo( hStdOut, &csbi )) return;
cellCount = csbi.dwSize.X *csbi.dwSize.Y;
if (!FillConsoleOutputCharacter(
hStdOut,
(TCHAR) ' ',
cellCount,
homeCoords,
&count
)) return;
if (!FillConsoleOutputAttribute(
hStdOut,
csbi.wAttributes,
cellCount,
homeCoords,
&count
)) return;
SetConsoleCursorPosition( hStdOut, homeCoords );
}
这个函数使用
#include <windows.h>
如果有人可以向我解释它,它是如何工作的,它是否有效并且随时向我建议其他方法来做同样的事情。谢谢!
【问题讨论】:
-
如果您有工作代码,请在 SE Code Review 上寻求评论。