Escape sequences
逸出序列
转义序列用于表示字符串文字和字符文字...
下列转义序列可用%28额外转义序列可提供实现定义的语义%29:
Escape sequence | Description | Representation |
---|---|---|
\' | single quote | byte 0x27 in ASCII encoding |
\" | double quote | byte 0x22 in ASCII encoding |
\? | question mark | byte 0x3f in ASCII encoding |
\ | backslash | byte 0x5c in ASCII encoding |
\a | audible bell | byte 0x07 in ASCII encoding |
\b | backspace | byte 0x08 in ASCII encoding |
\f | form feed - new page | byte 0x0c in ASCII encoding |
\n | line feed - new line | byte 0x0a in ASCII encoding |
\r | carriage return | byte 0x0d in ASCII encoding |
\t | horizontal tab | byte 0x09 in ASCII encoding |
\v | vertical tab | byte 0x0b in ASCII encoding |
\nnn | arbitrary octal value | byte nnn |
\xnn | arbitrary hexadecimal value | byte nn |
\unnnn | universal character name(arbitrary Unicode valuemay result in several characters | code point U+nnnn |
\Unnnnnnnn | universal character name(arbitrary Unicode valuemay result in several characters | code point U+nnnnnnnn |
注记
八进制逃逸序列,\0
是最有用的,因为它表示空终止字符串...
新行字符\n
中使用时具有特殊意义。文本模式I/O:它被转换为操作系统特定的换行符字节或字节序列。
八进制转义序列有三个八进制数字的限制,但终止在第一个字符,如果遇到一个有效的八进制数字更早。
十六进制转义序列没有长度限制,并且终止于第一个字符,该字符不是有效的十六进制数字。如果由单个十六进制转义序列表示的值不符合此字符串文字%28中使用的字符类型所表示的值范围char
,,,char16_t
,,,char32_t
,或wchar_t
%29,结果未指定。
窄字符串文字或16位字符串文字中的通用字符名可以映射到多个字符。\U0001f34c
是4char
UTF-8%28\xF0\x9F\x8D\x8C
%29和2char16_t
UTF-16%28\uD83C\uDF4C
%29%29
问号转义序列\?
是用来防止三角图在字符串文本中被解释:字符串,如"??/"
编译为"\"
,但是如果第二个问号被转义,如"?\?/"
,它变成"??/"
例
二次
#include <cstdio>
int main()
{
std::printf("This\nis\na\ntest\n\nShe said, \"How are you?\"\n"
}
二次
产出:
二次
This
is
a
test
She said, "How are you?"
二次
另见
- ASCII图
逃逸序列的C文档
*。
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。