用于在终端中绘制框的 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。
即便如此,您仍有工作要做,但这是一个开始:
┌─ ─ ─ ┐
─ └ ─ ┘
我正在尝试在屏幕上绘制一个如下所示的框:
┌───┐
└───┘
我找到了将光标移动到此处的 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。
即便如此,您仍有工作要做,但这是一个开始:
┌─ ─ ─ ┐
─ └ ─ ┘