C++在指定位置输出符号
0.前言
需要做控制台小游戏,需要获取光标在控制台的位置,从网上查到了gotoxy()函数可以实现,但是在DEVC++环境中直接调用这个gotoxy()会报错,于是查了一些资料,把过程记录下来。
1.过程实现
在DEVC++环境使用gotoxy()函数需要先定义,函数定义如下:
void gotoxy(int x, int y) { COORD pos = {x,y}; HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄 SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置 }
调用的时候只要使用gotoxy(),函数内部加上坐标即可。需要<windows.h>和<conio.h>头文件。
2.屏幕坐标系
在编程和一些游戏中,使用的都是屏幕坐标系,类似下面这种,
可以想象成二维数组。
3.指定位置输出符号
先在0,0点输出看下:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<conio.h>
#include<windows.h>
void gotoxy();//移动函数
void gotoxy(int x, int y) {
COORD pos = {x,y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}
using namespace std;
int main()
{
system("cls");
gotoxy(0,0);
cout<<"■";
gotoxy(0,1);
cout<<"■";
return 0;
}
运行结果:
可以看出在指定位置画出了图形。
4.结论与问题
gotoxy()函数可以在将光标移动到指定位置上,但是在测试中遇到一些奇怪现象,就是不同的坐标会出现在同一个位置上,不知道是不是编译的问题。
(adsbygoogle = window.adsbygoogle || []).push({});