printf("\e[2J\e[0;0H");
这行代码是什么意思?
我应该在哪里学习,怎样理解这个语句?
"\e"
作为转义序列不是C标准的一部分。
许多编译器将这种本来未定义的行为视为一个字符,其值为27 - ASCII的转义字符。
另一种良好定义的代码:
//printf("\e[2J\e[0;0H");
printf("\x1B[2J\x1b[0;0H");
printf("\033[2J\033[0;0H");
#define ESC "\033"
printf(ESC "[2J" ESC "[0;0H");
它们是ANSI转义序列
这些序列定义了改变显示图形、控制光标移动和重新分配键的功能。
它以\e[
开头,接下来的字符定义了应该发生什么。
2J
:清除终端
Esc[2J
擦除显示: 清除屏幕并将光标移动到起始位置(第0行,第0列)。
0;0H
将光标移动到位置 (0, 0)
Esc[Line;ColumnH
光标位置: 将光标移动到指定位置(坐标)。
另请参见: