对于Windows,通过Console API:void clear() {
COORD topLeft = { 0, 0 };
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen;
DWORD written;
GetConsoleScreenBufferInfo(console, &screen);
FillConsoleOutputCharacterA(
console, ' ', screen.dwSize.X * screen.dwSize.Y, topLeft, &written );
FillConsoleOutputAttribute(
console, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE,
screen.dwSize.X * screen.dwSize.Y, topLeft, &written );
SetConsoleCursorPosition(console, topLeft);}
它很高兴忽略了所有可能的错误,但是嘿,这是控制台清理。不喜欢system("cls")处理错误更好。
对于* nixes,您通常可以使用ANSI转义码,因此它是:void clear() {
// CSI[2J clears screen, CSI[H moves the cursor to top-left corner
std::cout <
使用system它只是丑陋。