我想在屏幕上画一个看起来像这样的框:
┌───┐
└───┘
我找到了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)的问题?
答案 0 :(得分:1)
应删除这些行中的尖括号(<
和>
):
std::string up = "\033[<"+bs+">A";
std::string down = "\033[<"+bs+">B";
std::string back = "\033[<"+bs+">D";
在TLDP页面中,<N>
应该是一个数字,使用古老的表示法来表示斜体文字,例如 N 。
即使这样,你仍然有工作要做,但这是一个开始:
┌─ ─ ─ ┐
─ └ ─ ┘