前言
最近在学习基于控制台的贪吃蛇小游戏的过程中,第一次接触到这个函数。几个月以前,有人问我网上那种控制台里面代码随机跳动的效果是怎么实现的。当时我并不知道这个API,只是想当然地告诉他:“就一行一行输出吧,不想输出字符的位置用空格字符占位。”,可是这样的输出方式,太不优雅了,一定有更好的方法。最近终于让我了解到了,原来真的提供有这样一个API,能够在控制台指定光标的X,Y位置。这样一来,在控制台指定位置的输出,就会变得非常容易。
函数介绍
函数定义
BOOL SetConsoleCursorPosition
(
HANDLE hConsoleOutput,
COORD dwCursorPosition
);
参数
HANDLE hConsoleOutput:
控制台的标准输出句柄。这个句柄可以通过GetStdHandle()函数获取。
COORD dwCursorPosition:
COORD类型的结构体,该结构体的原型为:
typedef struct _COORD
{
SHORT X;
SHORT Y;
} COORD, *PCOORD;
结构体中定义的SHORT类型的X,Y成员,决定了控制台中光标的横纵坐标位置。SHORT类型的原型是C++中short int(短整型)类型,内存长度为2,数值范围[-32768,32767]。
返回值
如果函数执行成功,返回值为非零值;
如果函数执行失败,返回值为0,如果想获得更多的错误信息,请调用GetLastError()函数。