做衬衫的网站,郑州便民网,wordpress发送邮箱验证码,温州建校特种作业人员查询Linux 为打印控制字符实现
Windows 为WINAPI控制台接口实现
功能#xff1a;
移动到上一行
移动到下一行
定位控制台光标位置到指定X,Y坐标 static bool MoveConsoleCursorPositionToPreviousNextLine(bool previous, int line) noexcept {if (line 0) {return fals…Linux 为打印控制字符实现
Windows 为WINAPI控制台接口实现
功能
移动到上一行
移动到下一行
定位控制台光标位置到指定X,Y坐标 static bool MoveConsoleCursorPositionToPreviousNextLine(bool previous, int line) noexcept {if (line 0) {return false;}if (line 0) {return true;}#ifdef _WIN32CONSOLE_SCREEN_BUFFER_INFO csbi;HANDLE hConsole GetStdHandle(STD_OUTPUT_HANDLE);if (NULL hConsole) {return false;}if (!GetConsoleScreenBufferInfo(hConsole, csbi)) {return false;}COORD pos{};pos.X csbi.dwCursorPosition.X;pos.Y previous ? csbi.dwCursorPosition.Y - 1 : csbi.dwCursorPosition.Y 1;return SetConsoleCursorPosition(hConsole, pos);
#elsereturn ::fprintf(stdout, previous ? \033[%dA : \033[%dB, line) 0;
#endif}bool MoveConsoleCursorPositionToPreviousLine(int line) noexcept {return MoveConsoleCursorPositionToPreviousNextLine(true, line);}bool MoveConsoleCursorPositionToNextLine(int line) noexcept {return MoveConsoleCursorPositionToPreviousNextLine(false, line);}bool SetConsoleCursorPosition(int x, int y) noexcept {
#ifdef _WIN32HANDLE hConsole GetStdHandle(STD_OUTPUT_HANDLE);if (NULL hConsole) {return false;}COORD coord { (SHORT)x, (SHORT)y };return ::SetConsoleCursorPosition(hConsole, coord);
#elsereturn ::fprintf(stdout, \033[%d;%dH, x, y) 0;
#endif}