我读到 \x1b
代表转义字符,但 '\'
本身不是转义字符吗?一个教程要我写
write(STDOUT_FILENO, "\x1b[2J", 4);
清除屏幕。为什么 '\[2J'
不能完成这项工作?
最佳答案
虽然这个问题有点老了,但我会以 \n
为例给出我的两分钱。
尽管ASCII 转义符
为\x1B
,n
为\x6E
,无法插入\使用
字符转换为字符串,原因有两个:\x1B\x6E
将 n
ASCII 表中的
ESC
字符和编程语言中的转义字符\
是两个不同的东西。编程语言在源代码(在字节级别之前)中搜索
\n
(作为单个实体),并将其转换为换行字节,因此\x1B\x6E
不会被转换为任何内容。因此,即使您在源代码中使用\x5C\x6E
(ASCII\
和 ASCIIn
),它也不会得到转换为换行符。
Python 示例:
>>> print("Hello\x5C\x6EWorld")
Hello\nWorld
# if one still insists on inserting a new line using an ascii line-feed (\x0A), they can do:
>>> print("Hello\x0AWorld")
Hello
World
HTH。
关于c - 为什么我必须使用\x1b 而不是\来表示转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56284599/