【问题标题】:ANSI commands for drawing boxes in terminal用于在终端中绘制框的 ANSI 命令
【发布时间】:2016-05-03 22:43:10
【问题描述】:

我正在尝试在屏幕上绘制一个如下所示的框:

┌───┐



└───┘

我在这里找到了移动光标的 ANSI 命令:

http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html

我的代码如下所示:

int main()
{
    int boxsize = 5;
    std::string bs = std::to_string(boxsize);
    std::string up = "\033[<"+bs+">A";
    std::string down = "\033[<"+bs+">B";
    std::string back = "\033[<"+bs+">D";

    std::cout << "┌";
    for (int i = 0; i < boxsize-2; ++i)
    {
    std::cout << "─";
    std::cout << down;
    std::cout << "─";
    std::cout << up;
    }
    std::cout << "┐";
    std::cout << down;
    std::cout << "┘";
    std::cout << back;
    std::cout << "└";
}

我的结果是这样的:

┌─5>B─5>A─5>B─5>A─5>B─5>A┐5>B┘5>D└

是我错误地使用了 ANSI 命令还是我的终端(yakuake)有问题?

【问题讨论】:

    标签: terminal draw ansi


    【解决方案1】:

    应删除这些行中的尖括号(&lt;&gt;):

    std::string up = "\033[<"+bs+">A";
    std::string down = "\033[<"+bs+">B";
    std::string back = "\033[<"+bs+">D";
    

    TLDP 页面中,&lt;N&gt; 应该是一个数字,使用古老的符号来表示斜体文本,例如,N

    即便如此,您仍有工作要做,但这是一个开始:

    ┌─ ─ ─ ┐
    
    
    
    
      ─ └ ─ ┘
    

    【讨论】:

      猜你喜欢
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 2020-09-16
      相关资源
      最近更新 更多