c - 如何用 ASCII 码移动终端光标?

标签 c bash terminal ncurses

#include <stdio.h>
int main()
{
    printf("asd");
    char code[4] = { 0x08 ,  0x1b , 0x5b ,0x4b } ; 
    int i = 0 ; 
    while ( i  < 4  )
    {   
        putc(code[i], stdout);
        i++;
    }   
    printf("\n");
    return 0;
}

输出:

[root@localhost ~]# ./a.out

作为

[root@localhost ~]#

似乎代码“0x08”将终端光标向左移动到字母“d”的位置,而“0x1b、0x5b、0x4b”清除了字母“d”。 我想知道一些代码的含义,例如 { 0x08 , 0x1b , 0x5b ,0x4b } 。有相关资料吗?

谢谢。

最佳答案

参见 ANSI escape code .

一个简单的方法是

printf("\e[10C%s\n", "XYZ");

它将光标向右移动 10 列并打印 XYZ:

          XYZ

关于c - 如何用 ASCII 码移动终端光标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24628094/

相关文章:

c - 验证内存是否已在 C 中初始化

c - 为什么此代码片段会出现段错误

bash - 如何在CloudFormation中传入UserData作为参数

c - 我怎样才能让 program1 从 promram2 获取输入,而 program2 同时从终端获取输入?

python - 在 Python 中将文件范围传递到 stdin

docker - 在Mac OS X上通过 `-it`命令提取图像后如何进入docker容器?

c - 将 libpcap 与套接字连接一起使用

检查命令行参数是否正确 - C 编程

linux - bash - 在系统初始化时执行 jar 并正常关闭

java - 有没有一种方法可以使用 Cygwin 运行 shell 脚本并对 java 命令使用正确的路径分隔符