詳解gotoxy:打造完美控制台UI界面的利器

一、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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:09
下一篇 2024-12-12 12:09

相關推薦

  • lsw2u1:全能編程開發工程師的利器

    lsw2u1是一款多功能工具,可以為全能編程開發工程師提供便利的支持。本文將從多個方面對lsw2u1做詳細闡述,並給出對應代碼示例。 一、快速存取代碼段 在日常開發中,我們總會使用…

    編程 2025-04-29
  • Python刷課:優化學習體驗的利器

    Python刷課作為一種利用自動化技術優化學習體驗的工具已經被廣泛應用。它可以幫助用戶自動登錄、自動答題等,讓用戶在學習過程中可以更加專註於知識本身,提高效率,增加學習樂趣。 一、…

    編程 2025-04-29
  • 如何使用Python將print輸出到界面?

    在Python中,print是最常用的調試技巧之一。在編寫代碼時,您可能需要在屏幕上輸出一些值、字元串或結果,以便您可以更好地理解並調試代碼。因此,在Python中將print輸出…

    編程 2025-04-29
  • HBuilder2.0:一站式開發利器

    本文將從如下幾個方面對HBuilder2.0進行詳細闡述,幫助初學者快速了解並開始使用該工具: 一、簡介 HBuilder2.0是一個跨平台的HTML5集成開發工具。它綜合了編碼、…

    編程 2025-04-28
  • Powersploit:安全評估與滲透測試的利器

    本文將重點介紹Powersploit,並給出相關的完整的代碼示例,幫助安全人員更好地運用Powersploit進行安全評估和滲透測試。 一、Powersploit簡介 Powers…

    編程 2025-04-28
  • JL Transaction – 實現分散式事務管理的利器

    本文將為大家介紹JL Transaction,這是一款可以實現分散式事務管理的開源事務框架,它可以幫助企業在分散式環境下有效地解決事務的一致性問題,從而保障系統的穩定性和可靠性。 …

    編程 2025-04-28
  • Python接收控制台輸入

    本文將圍繞Python在控制台接收輸入的相關內容進行介紹,並給出多種方式的代碼實現。 一、input函數 Python內置的input()函數用於從控制台接收用戶輸入。 name …

    編程 2025-04-27
  • 全自動股票交易軟體:實現自動交易賺取更多收益的利器

    全自動股票交易軟體是一款能夠幫助股票投資者實現自動交易,據此獲取更多收益的利器。本文將從多個方面詳細闡述該軟體的特點、優點、使用方法及相關注意事項,以期幫助讀者更好地了解和使用該軟…

    編程 2025-04-27
  • Python 如何進入編程界面?

    Python 是一種廣泛應用於 Web、遊戲、網路爬蟲等領域的高級編程語言。Python 雖然易學易用,但還是需要一些工具和步驟來實際編寫運行程序。 一、命令行模式 在命令行模式下…

    編程 2025-04-27
  • mfastboot:快速刷機利器

    本文將詳細闡述全能工程師如何使用mfastboot進行快速刷機,並且深入解析mfastboot的功能與優勢。 一、下載並配置mfastboot 1、首先,在Ubuntu中打開終端並…

    編程 2025-04-27

發表回復

登錄後才能評論