C语言中的光标定位函数(将光标移动到屏幕的指定位置)
所谓的光标定位函数,就是实现键盘输入坐标值从而把鼠标的光标移动到相应坐标位置的函数模块,在简单的小游戏如贪吃蛇等需要定位输出的程序中有着较为广泛的应用。
而在用C语言实现光标定位的过程中,则需要从<windows.h>中调用已经封装好的结构体COORD来完成对坐标x,y的记录,调用HANDLE(封装好的结构体)来获得标准输出句柄;同样SetConsoleTextAttribute也是C语言中内置的函数用来移动光标的。
对于只管使用不问原理的萌新,以上均为废话
下面说一说光标函数的使用方法,先来一段光标函数的代码
void gotoxy(int x,int y)//光标定位函数
{
COORD p;//定义结构体变量p
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取当前函数句柄
p.X=x;p.Y=y;//将光标的目标移动位置传递给结构体
SetConsoleCursorPosition(handle,p);//移动光标
}
程序示例
#include<stdio.h>
#include<windows.h>
void gotoxy(int x,int y)//光标定位函数
{
COORD p;//定义结构体变量p
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取当前函数句柄
p.X=x;p.Y=y;//将光标的目标移动位置传递给结构体
SetConsoleCursorPosition(handle,p);//移动光标
}
main()
{
gotoxy(45,8);
printf("Nice to meet you!\n");
return 0;
}
在上面的示例中,我们定义的x的值为45,y的值为8,那么光标就会先移动到第45列第8行的位置再执行下一步的打印指令,所以打印出来的内容在DOS框中的位置也就会改变(从(45,8)开始)。
所以说,只要改变gotoxy(x,y)中x,y的值,就可以在DOS框的任意位置输出内容啦。
运行结果
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn1UMJRVT6lFVOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1MDOwEjMzEjM1ITMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)