C语言光标移动函数

2021年6月21日 3点热度 0条评论 来源: Hanani_Jia

 

static void _SetPos(int x, int y)//移动光标到X、Y位置
{
COORD position;
HANDLE handle;
handle=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(handle, position);
}

C语言光标移动函数,COORD实际上是一个C语言内部做好的结构体,结构体中只包含两个元素,x和y,这里的x、y就是代表着光标移动的位置

typedef struct _COORD {
int x;
int y;
} ;

实际上就是一个这样的,只不过这里不需要你再去定义一个结构体,直接调用就可以。这个结构体就是用来记录坐标。

GetStdHandle
()
这个函数也是C语言内部已经设定好的,所以这里直接调用就行。
GetStdHandle(
STD_OUTPUT_HANDLE
)
这里就是一个固定的函数格式,获得标准输出函数的句柄。

HANDLE
 handle;
这里和COORD 是一样的HANDLE是一个一定由系统定制的结构体直接调用就可以。将获得的标准输出句柄给handle。

SetConsoleCursorPosition
这个函数是用来移动光标的,也是由C语言直接提供给你的直接使用就可以。

#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
HANDLE hout;
COORD coord;
coord.X=30;
coord.Y=10;
hout=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hout,coord); 
cout<<"Hello world!\n";
return 0;
}
 
 

这个程序能够在DOS框中的30,10位置输出一个Hello world




 



这里的X
轴和
Y
轴如上图。
这里光标移动就是一个固定的套路,有些具体的知识像什么是句柄这些,在我当前的知识范围和能力还不能具体详细的解释清楚,如果以后可以的话再具体写吧。

    原文作者:Hanani_Jia
    原文地址: https://blog.csdn.net/Hanani_Jia/article/details/80012420
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。