用于在终端中绘制框的 ANSI 命令

ANSI commands for drawing boxes in terminal

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

┌───┐



└───┘

我找到了将光标移动到此处的 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 = "3[<"+bs+">A";
    std::string down = "3[<"+bs+">B";
    std::string back = "3[<"+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) 的问题吗?

应删除以下行中的尖括号(<>):

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

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

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

┌─ ─ ─ ┐




  ─ └ ─ ┘