一、gotoxy基本概念
#include <windows.h>
void gotoxy(int x, int y) {
COORD pos;
pos.X = x - 1;
pos.Y = y - 1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
gotoxy函数是在控制台窗口中移动光标的函数,它是Windows.h头文件中的一个函数,用于实现在控制台窗口中输出文本时,可以控制光标的位置。这个函数是通过控制控制台的光标位置来实现的。
其中,该函数的头文件为windows.h,相关数据类型为COORD结构体,该结构体有两个变量,分别代表着光标的X和Y坐标。
二、gotoxy优势
1、输出位置准确
在控制台输出文本时,如果没有gotoxy函数,只能逐个字符的输出,不能准确控制输出文本的位置。使用gotoxy函数可以直接将输出光标放置到指定位置,从而快捷有效地进行文本输出。
2、界面美观
在控制台输出一般的文本界面时,如果只是输出简单的文本序列,往往会造成界面很丑的问题。使用gotoxy函数,可以定义各种控制台界面的布局和设计,从而打造美观实用的控制台界面。
3、提高效率
使用gotoxy函数,可以控制输出的位置,有效的进行批量处理和实现复杂的操作。因此,可以既提高代码的效率,也提高开发者的工作效率。
三、gotoxy实例代码
1、输出居中文本
#include <iostream>
#include <windows.h>
using namespace std;
void gotoxy(int x,int y)
{
COORD pos = {x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
int main()
{
int columns = 80, rows = 20;
gotoxy(columns / 2 - 10, rows / 2);
cout << "This text is in the center of the screen." << endl;
return 0;
}
2、绘制表格
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
void gotoxy(int x, int y)
{
COORD coord = { x, y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main()
{
const int columns = 80, rows = 20;
int x = 5, y = 5;
for (int i = 0; i <= 30; i++)
{
gotoxy(x, y);
printf("| |");
y++;
}
return 0;
}
3、实现动态效果
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
void gotoxy(int x, int y)
{
COORD coord = { x, y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
int main()
{
int x = 10, y = 10, i = 1;
system("color 0E");//改变输出颜色,制造动态效果
while (1)
{
gotoxy(x, y);
cout << i++;
if (kbhit())//敲击键盘,程序结束
{
break;
}
Sleep(100);
}
return 0;
}
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/238147.html
微信扫一扫
支付宝扫一扫