C 什么是\";做什么是\e[1;1H\e[2J”做什么?

C 什么是\";做什么是\e[1;1H\e[2J”做什么?,c,macos,C,Macos,我一直在寻找适用于MacOS的系统(“cls”)的替代方案,我发现: printf(“\e[1;1H\e[2J”); 然而,我不知道这是在做什么 \e是转义,printf()行告诉终端将光标移动到第1行第1列(\e[1;1H),并将终端中当前的所有文本移动到回滚缓冲区(\e[2J)。 这些是ANSI转义码,下面是一些参考资料: (建议人) 编辑:我还建议使用\e[H\e[2J\e[3J,因为这是cls/clear打印的内容。这告诉终端将光标移动到左上角(\e[H),清除屏幕(\e[2J)

我一直在寻找适用于MacOS的
系统(“cls”)
的替代方案,我发现:

printf(“\e[1;1H\e[2J”);
然而,我不知道这是在做什么


\e
是转义,printf()行告诉终端将光标移动到第1行第1列(
\e[1;1H
),并将终端中当前的所有文本移动到回滚缓冲区(
\e[2J
)。

这些是ANSI转义码,下面是一些参考资料:


(建议人)

编辑:我还建议使用
\e[H\e[2J\e[3J
,因为这是cls/clear打印的内容。这告诉终端将光标移动到左上角(
\e[H
),清除屏幕(
\e[2J
),并清除滚动缓冲区(
\e[3J
)。

这不是regexp:
“\e”
不是C11描述的字母转义序列(请参阅)。如果需要可移植性,请替换为
“\x1B”
,即
printf(“\x1B[1;1H\x1B[2J”);
维基百科实际上有一个。