一、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-tw/n/238147.html