1

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

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

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

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

4

2 回答 2

3

xterm 可以显式执行此操作(请参阅XTerm Control Sequences):

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

或在外壳中

printf '\033F'

但并非所有的“xterm”相似物都实现了 xterm 所做的一切。对于那些,您可以通过告诉它在左边距上向下移动来制定一个“足够好”的解决方案。这适用于您可能使用的任何终端:

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

在外壳中:

tput cup 9999 0

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

于 2019-10-27T11:03:05.717 回答
0

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

具体见:

CSI P s ; P s ; P st P s = 1 9 → 以字符报告屏幕大小。结果是 CSI 9 ;高度 ; 宽度 t

...和...

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

“CSI”在http://en.wikipedia.org/wiki/ANSI_escape_code进行了解释

于 2014-01-14T00:50:17.107 回答