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