转义序列
来自cppreference.com
转义序列是用来在字符串字面值中定义某些特殊字符。
可以使用下列转义序列:
转义序列 | 描述 | 代表字符 |
---|---|---|
\'
|
单引号 | byte 0x27
|
\"
|
双引号 | byte 0x22
|
\?
|
问号 | byte 0x3f
|
\\
|
反斜杠 | byte 0x5c
|
\0
|
空字符 | byte 0x00
|
\a
|
响铃 | byte 0x07
|
\b
|
退格 | byte 0x08
|
\f
|
换页 | byte 0x0c
|
\n
|
换行 | byte 0x0a
|
\r
|
回车 | byte 0x0d
|
\t
|
水平制表 | byte 0x09
|
\v
|
垂直制表 | byte 0x0b
|
\nnn
|
任意八进制值 | byte nnn
|
\xnn
|
任意十六进制值 | byte nn
|
\u
|
任意 Unicode 值 可能得到多个字符 |
code point U+nnnn
|
\U
|
任意 Unicode 值 可能得到多个字符 |
code point U+nnnnnnnn
|
[编辑] 注释
换行符\n
在文本模式输入输出时具有特殊的意义,它将被转换为和操作系统相关的换行符字节或字节序列。
八进制转义序列限制为三个八进制数字,但是八进制转义序列会在之后第一个非有效的八进制数字处终止,若其出现的话。
十六进制转义序列没有长度限制,在第一个非有效十六进制数字出终止。如果一个十六进制转义序列表示的值不符合当前字符串字面值使用的字符类型(char、char16_t、char32_t或wchar_t)的范围,则没有规定其结果。
一个窄字符串字面值中的一般字符名可能由于多字节编码映射到多个字符上。
问号转义序列\?被用作防止在字符串字面值中解释为三字符符号:字符串"??/"会被作为"\"编译;但如果转义第二个问号,即"?\?/", 则会成为"??/"}}。
[编辑] 示例
#include <iostream> int main() { std::printf("This\nis\na\ntest\n\nShe said, \"How are you?\"\n"); }
输出:
This is a test She said, "How are you?"