【发布时间】:2014-08-28 23:14:47
【问题描述】:
#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 } 。有相关资料吗?
谢谢。
【问题讨论】:
-
您可能需要参考 ASCII 码。 asciitable.com
-
感谢您的回复。我使用 putc( 0x4b , stdout) 。它会将字符“K”打印到终端。但是当我把“0x08、0x1b、0x5b、0x4b”一一放入时,它不会打印K。所以我猜代码“0x08,0x1b,0x5b,0x4b”控制终端的外观就像一个命令。
-
@rcs:ASCII 没有指定终端代码。 konsolebox's answer 指向一篇关于所谓 ANSI 转义码(实际上由 ISO/IEC 6429 / ECMA-48 定义)的维基百科文章。