控制台函数
控制台相关函数API
https://docs.microsoft.com/en-us/windows/console/console-functionsGetStdHandle(获取控制台句柄)检索指定标准设备(标准输入,标准输出或标准错误)的句柄。
HANDLE WINAPI GetStdHandle( _In_ DWORD nStdHandle );nStdHandle [输入] :
STD_INPUT_HANDLE 标准输入
STD_OUTPUT_HANDLE 标准输出
STD_ERROR_HANDLE 标准错误
光标相关SetConsoleCursorPosition设置光标在指定控制台屏幕缓冲区中的位置
BOOL WINAPI SetConsoleCursorPosition( _In_ HANDLE hConsoleOutput, _In_ COORD dwCursorPosition );hConsoleOutput [输入] :控制台屏幕缓冲区的句柄,通过GetStdHandle获取
dwCursorPosition [in] :一个COORD结构,以字符为单位指定新的光标位置。坐标是屏幕缓冲区字符单元格的列和行。
COORDtypedef struct _COORD { SHORT X; SHORT Y; } COORD, *PCOORD;就是一个二维坐标点
SetConsoleCursorInfo为指定的控制台屏幕缓冲区设置光标的大小和可见性。
BOOL WINAPI SetConsoleCursorInfo( _In_ HANDLE hConsoleOutput, _In_ const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo );hConsoleOutput [输入] :控制台屏幕缓冲区的句柄,通过GetStdHandle获取
lpConsoleCursorInfo [in] :指向CONSOLE_CURSOR_INFO结构的指针
CONSOLE_CURSOR_INFO包含有关控制台光标的信息。
typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize; BOOL bVisible; } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;dwSize:光标填充的字符单元格的百分比。此值在1到100之间。
注意windows控制台dwSize值默认为1,Linux一般为100
bVisible:光标的可见性。如果光标可见,则此成员为TRUE。
SetConsoleTextAttribute写入控制台屏幕缓冲区的字符的属性,控制
BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes );hConsoleOutput [输入] :控制台屏幕缓冲区的句柄,通过GetStdHandle获取
wAttributes [IN] :字符属性
字符属性可以分为两类:颜色和DBCS。
设置文字颜色:
FOREGROUND_BLUE 蓝色
FOREGROUND_GREEN 绿色
……
详情:https://docs.microsoft.com/en-us/windows/console/console-screen-buffers#_win32_font_attributes隐藏控制台光标CONSOLE_CURSOR_INFO cciCursor; //控制台光标的信息 HANDLE hout; //句柄 hout = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台标准输入句柄 if (GetConsoleCursorInfo(hout, &cciCursor))//获取控制台屏幕缓冲区光标的大小和可见性 { //设置光标不可见 cciCursor.bVisible = false; SetConsoleCursorInfo(hout, &cciCursor); }设置输出位置void gotoxy(int x, int y) { HANDLE hout; COORD pos; pos.X = x; pos.Y = y; hout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hout, pos); }End
---来自腾讯云社区的---DeROy
微信扫一扫打赏
支付宝扫一扫打赏