如何使用ASCII码移动终端光标? #包括 int main() { printf(“asd”); 字符代码[4]={0x08,0x1b,0x5b,0x4b}; int i=0; 而(i
输出: [root@localhost出去 作为 [root@localhost~]# 代码“0x08”似乎将终端光标向左移动到字母“d”位置,“0x1b、0x5b、0x4b”清除字母“d”。 我想知道一些代码的含义,比如{0x08,0x1b,0x5b,0x4b}。是否有相关信息如何使用ASCII码移动终端光标? #包括 int main() { printf(“asd”); 字符代码[4]={0x08,0x1b,0x5b,0x4b}; int i=0; 而(i,c,bash,terminal,ncurses,C,Bash,Terminal,Ncurses,输出: [root@localhost出去 作为 [root@localhost~]# 代码“0x08”似乎将终端光标向左移动到字母“d”位置,“0x1b、0x5b、0x4b”清除字母“d”。 我想知道一些代码的含义,比如{0x08,0x1b,0x5b,0x4b}。是否有相关信息 谢谢。另一个支持我猜测的例子: #include <stdio.h> int main() { printf("asd"); char code[4] = { 0x08 , 0x1b ,
谢谢。另一个支持我猜测的例子:
#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;
}
#包括
int main()
{
printf(“asd”);
字符代码[8]={0x08,0x1b,0x5b,0x4b,0x08,0x1b,0x5b,0x4b};
int i=0;
而(i<8)
{
putc(代码[i],标准输出);
i++;
}
printf(“\n”);
返回0;
}
输出:
[root@localhost出去
a
[root@localhost~]#另一个支持我猜测的例子:
#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;
}
#包括
int main()
{
printf(“asd”);
字符代码[8]={0x08,0x1b,0x5b,0x4b,0x08,0x1b,0x5b,0x4b};
int i=0;
而(i<8)
{
putc(代码[i],标准输出);
i++;
}
printf(“\n”);
返回0;
}
输出:
[root@localhost出去
a
[root@localhost~]#请参见
一个简单的方法就是
#include <stdio.h>
int main()
{
printf("asd");
char code[8] = { 0x08 , 0x1b , 0x5b ,0x4b , 0x08 , 0x1b , 0x5b ,0x4b } ;
int i = 0 ;
while ( i < 8 )
{
putc(code[i], stdout);
i++;
}
printf("\n");
return 0;
}
它会将光标向右移动10列并打印XYZ:
printf("\e[10C%s\n", "XYZ");
看
一个简单的方法就是
#include <stdio.h>
int main()
{
printf("asd");
char code[8] = { 0x08 , 0x1b , 0x5b ,0x4b , 0x08 , 0x1b , 0x5b ,0x4b } ;
int i = 0 ;
while ( i < 8 )
{
putc(code[i], stdout);
i++;
}
printf("\n");
return 0;
}
它会将光标向右移动10列并打印XYZ:
printf("\e[10C%s\n", "XYZ");
您可能需要参考ASCII代码。谢谢你的回复。我使用putc(0x4b,stdout)。它将向终端打印字符“K”。但当我逐个输入“0x08、0x1b、0x5b、0x4b”时,它不会打印K。所以我猜代码“0x08、0x1b、0x5b、0x4b”像命令一样控制终端外观。@rcs:ASCII没有指定终端代码。指向维基百科中一篇关于所谓ANSI转义码(由ISO/IEC 6429/ECMA-48定义)的文章。您可能希望参考ASCII码。谢谢你的回复。我使用putc(0x4b,stdout)。它将向终端打印字符“K”。但当我逐个输入“0x08、0x1b、0x5b、0x4b”时,它不会打印K。所以我猜代码“0x08、0x1b、0x5b、0x4b”像命令一样控制终端外观。@rcs:ASCII没有指定终端代码。指向维基百科上一篇关于所谓的ANSI转义码(实际上是由ISO/IEC 6429/ECMA-48定义的)的文章\e’表示逃生是不标准的;gcc支持它,但其他编译器可能不支持。如果您想要更多可移植的代码,请使用“\x1b”。@KeithThompson谢谢。我从来不知道。我很确定\x1b转义也可以写成\033\e’表示逃生是不标准的;gcc支持它,但其他编译器可能不支持。如果您想要更多可移植的代码,请使用“\x1b”。@KeithThompson谢谢。我从来不知道。我很确定\x1b转义也可以写成\033