1#ifndef __CPP_CONSOLE_ERASE_HPP__
2#define __CPP_CONSOLE_ERASE_HPP__
25 CONSOLE_SCREEN_BUFFER_INFO csbi;
28ConsoleInfo getConsoleInfo() {
30 info.hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
31 if (info.hConsole == INVALID_HANDLE_VALUE) {
32 std::cerr <<
"Error: Unable to get console handle." << std::endl;
35 if (!GetConsoleScreenBufferInfo(info.hConsole, &info.csbi)) {
36 std::cerr <<
"Error: Unable to get console screen buffer info."
49 std::cout <<
"\033[0J";
53 ConsoleInfo info = getConsoleInfo();
56 (info.csbi.dwSize.Y - info.csbi.dwCursorPosition.Y - 1) +
57 (info.csbi.dwSize.X - info.csbi.dwCursorPosition.X);
59 COORD startCoord = info.csbi.dwCursorPosition;
60 FillConsoleOutputCharacter(info.hConsole,
' ', cellsToClear, startCoord,
62 FillConsoleOutputAttribute(info.hConsole, info.csbi.wAttributes,
63 cellsToClear, startCoord, &charsWritten);
64 SetConsoleCursorPosition(info.hConsole, info.csbi.dwCursorPosition);
73 std::cout <<
"\033[1J";
77 ConsoleInfo info = getConsoleInfo();
78 DWORD cellsToClear = info.csbi.dwCursorPosition.Y * info.csbi.dwSize.X +
79 info.csbi.dwCursorPosition.X + 1;
81 COORD startCoord = {0, 0};
82 FillConsoleOutputCharacter(info.hConsole,
' ', cellsToClear, startCoord,
84 FillConsoleOutputAttribute(info.hConsole, info.csbi.wAttributes,
85 cellsToClear, startCoord, &charsWritten);
86 SetConsoleCursorPosition(info.hConsole, info.csbi.dwCursorPosition);
95 std::cout <<
"\033[2J";
99 ConsoleInfo info = getConsoleInfo();
100 DWORD cellsToClear = info.csbi.dwSize.X * info.csbi.dwSize.Y;
102 COORD startCoord = {0, 0};
103 FillConsoleOutputCharacter(info.hConsole,
' ', cellsToClear, startCoord,
105 FillConsoleOutputAttribute(info.hConsole, info.csbi.wAttributes,
106 cellsToClear, startCoord, &charsWritten);
115 std::cout <<
"\033[0K";
119 ConsoleInfo info = getConsoleInfo();
120 DWORD cellsToClear = info.csbi.dwSize.X - info.csbi.dwCursorPosition.X;
122 COORD startCoord = info.csbi.dwCursorPosition;
123 FillConsoleOutputCharacter(info.hConsole,
' ', cellsToClear, startCoord,
125 FillConsoleOutputAttribute(info.hConsole, info.csbi.wAttributes,
126 cellsToClear, startCoord, &charsWritten);
127 SetConsoleCursorPosition(info.hConsole, info.csbi.dwCursorPosition);
136 std::cout <<
"\033[1K";
141 ConsoleInfo info = getConsoleInfo();
142 DWORD cellsToClear = info.csbi.dwCursorPosition.X + 1;
144 COORD startCoord = {0, info.csbi.dwCursorPosition.Y};
145 FillConsoleOutputCharacter(info.hConsole,
' ', cellsToClear, startCoord,
147 FillConsoleOutputAttribute(info.hConsole, info.csbi.wAttributes,
148 cellsToClear, startCoord, &charsWritten);
149 SetConsoleCursorPosition(info.hConsole, info.csbi.dwCursorPosition);
158 std::cout <<
"\033[2K";
162 ConsoleInfo info = getConsoleInfo();
163 DWORD cellsToClear = info.csbi.dwSize.X;
165 COORD startCoord = {0, info.csbi.dwCursorPosition.Y};
166 FillConsoleOutputCharacter(info.hConsole,
' ', cellsToClear, startCoord,
168 FillConsoleOutputAttribute(info.hConsole, info.csbi.wAttributes,
169 cellsToClear, startCoord, &charsWritten);
170 SetConsoleCursorPosition(info.hConsole, info.csbi.dwCursorPosition);
Namespace Containing all console commands.
Definition ansi.hpp:16
void eraseFromCursorToBOL()
Erases from the cursor position to the beginning of the line.
Definition erase.hpp:134
void eraseFromCursorToEOL()
Erases from the cursor position to the end of the line.
Definition erase.hpp:113
void eraseCurrentLine()
Erases the line the cursor is currently on.
Definition erase.hpp:156
void eraseEntireScreen()
Erases the entire screen.
Definition erase.hpp:93
void eraseFromCursorToEOS()
Erases the screen from the cursor to the end of screen.
Definition erase.hpp:47
bool isANSIEnabled()
Checks if ANSI Codes are enable in windows.
Definition ansi.hpp:22
void eraseFromCursorToBOS()
Erases the screen from the cursor to the beginning of screen.
Definition erase.hpp:71