详解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/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

发表回复

登录后才能评论