当我在 Linux 终端上运行下面的代码时,终端一团糟。
#include <stdio.h>
int main()
{
printf("\16x\n");
return 0;
}
出于好奇,有人可以解释一下这里发生了什么吗?我知道问题出在 \16x 中,但我不知道为什么会这样。
\16
是 Shift Out 的 ASCII 八进制代码。在现代终端中,它会发生这样的事情(来自维基百科的图片):
这个 ASCII 码曾经用于各种制造商特定用途,围绕切换编码、语言等。
有关他们过去所做的更多详细信息,请参阅Wikipedia 。