本文主要是介绍句柄的学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通过控制窗口中修改光标的坐标
实现功能:在控制台窗口中修改光标的坐标
首先看以下的代码块:
#include<stdio.h>
#include<windows.h>
void gotoxy(int x, int y)//更新光标位置
{COORD pos;HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);pos.X = x;pos.Y = y;SetConsoleCursorPosition(hOutput, pos);
}
void main()
{gotoxy(3,5);printf("abc");gotoxy(6,6);printf("de\n");
}
遇到新的知识:
①什么是COORD?
COORD是windows.h头文件下的结构体,表示一个字符在控制台屏幕上的坐标,其定义为:
typedef struct _COORD
{SHORT X; // horizontal coordinateSHORT Y; // vertical coordinate
}COORD;
X为控制台横坐标,Y为控制台的纵坐标。
②HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
是什么意思?
先拆解成两部分:HANDLE hOutput 和 GetStdHandle(STD_OUTPUT_HANDLE)
1.GetStdHandle(STD_OUTPUT_HANDLE)简而言之就是获取句柄
相关链接如下:
https://baike.baidu.com/item/GetStdHandle/6909878?fr=aladdin
2.HANDLE hOutput,其中HANDLE就是句柄(类型),hOutput就是句柄的变量
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
理解为:GetStdHandle函数获取的句柄赋值给句柄类型的变量hOutput
③SetConsoleCursorPosition(hOutput, pos);
是定义光标位置的函数
pos此时是结构体COORD的变量,修改pos的X和Y值就可以实现对光标的位置控制。
在这里转载一篇大佬的blog
这篇关于句柄的学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!