c语言当中的COORD ,GetStdHandle(),SetConsoleCursorPosition(),以及避免清屏和反复刷新新屏幕带来的闪烁效应
这是Windows API 定义的结构体类型COORD来表示字符在控制台屏幕上的坐标,结构体类型COORD定义为:
typedef struct _COORD
{
SHORT X;
SHORT Y;
}COORD;
使用Windows API GetStdHandle()
从一个特定的标准设备获取表示设备的句柄(用来标识不同设备的一个数值),SetConsoleCursorPosition()
定位光标位置
void Gotoxy(int x,int y)
{
COORD poe={x,y};
HANDLE hOutput=GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备的句柄
SetConsoleCursorPosition(hOutput,poe); //定位光标位置
}
隐藏光标
void HideCursor()
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;//console_cursor_info是一个结构体,用于描述控制台光标的信息
//包括光标的位置、大小和可见性等。cursor_info是该结构体的一个实例
//用于存储具体的光标信息。
GetConsoleCursorInfo(handle,&CursorInfo); //获取控制台光标信息
CursorInfo.bVisible=0; //隐藏控制台光标
SetConsoleCursorInfo(handle,&CursorInfo); //设置控制台光标信息
}