将光标移动到控制台的左下角

时间:2014-01-14 00:35:40

标签: c++ linux ansi-escape

如何将linux控制台中的光标位置移到左下角?我知道我可以写

std::cout << "\033[1;1H";

将光标移动到左上角。 但是there显然没有代码可以通过一个命令将其移动到左下角。

我不想使用像ncurses这样的外部库。

2 个答案:

答案 0 :(得分:1)

xterm可以明确地做到这一点(请参阅XTerm Control Sequences):

std::cout << "\033F";

或在外壳中

printf '\033F'

但并非所有的“ xterm”相似都实现xterm所做的一切。对于这些用户,您可以通过告诉其将 far 移至左侧边缘的方式来制作“足够好”的解决方案。这将适用于您可能使用的任何终端:

std::cout << "\033[9999;1H";

在外壳中:

tput cup 9999 0

(假设您的终端机少于10,000行)。

答案 1 :(得分:0)

您的“标准Ubuntu终端”可能支持xterm转义码:http://invisible-island.net/xterm/ctlseqs/ctlseqs.html

具体见:

  

CSI P s; P s;太平洋标准时间   P s = 1 9→以字符报告屏幕大小。结果是CSI 9;身高宽度t

...和...

  

ESC Y P s P s将光标移动到给定的行和列。

“CSI”在http://en.wikipedia.org/wiki/ANSI_escape_code

解释