一、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/zh-hant/n/238147.html
微信掃一掃
支付寶掃一掃