一、转义序列编码
| 字符名称 | ASCII符号 | C++代码 | 十进制 | 十六进制 |
|---|---|---|---|---|
| 换行符 | NL(LF) | \n | 10 | 0xA |
| 水平制表符 | HT | \t | 9 | 0x9 |
| 垂直制表符 | VT | \v | 11 | 0xB |
| 退格 | BS | \b | 8 | 0x8 |
| 回车 | CR | \r | 13 | 0xD |
| 振铃 | BEL | \a | 7 | 0x7 |
| 反斜杠 | \ | \\ | 92 | 0x5C |
| 问号 | ? | \? | 63 | 0x3F |
| 单引号 | ’ | \’ | 39 | 0x27 |
| 双引号 | " | \" | 34 | 0x22 |
二、八进制转义
由 \ + 3 位字符组成,其中字符范围为 0-7 。
ASCII 码表总范围为 \000 - \177,实际上允许 \000 - \377 。
示例:
\323 \042 \04 \177
三、十六进制转义
用 \x + 任意位字符组成,其中字符范围为 0-F , \0X \0x \X 都是错误的前缀。
ASCII 码表总范围为 \x00 - \x7f ,实际上允许 \x00 - \xff 。
示例:
\x13 \xff \x01 \x0000000f
四、多字符输入
最多允许给 char 变量赋值 4 个字节的字符,但 char 变量最终结果为最后字符。
字符串则允许任意多个字节,但是 \0 之后的不被存储计算(char 会计算)。
特殊情况:
在八进制中遇到超出 0-7 范围的字符,或总范围超出 \0000 - \0377 ,则发生截断。
\7687 \76 8 7
\22222 \222 2 2
\087 \0 8 7
\95 \0 9 5
在十六进制中遇到超出 0-F 范围的字符,则发生截断。
\xdfg \xdf g
\x0000hg \x0 h g
\x0g \x0 g
在十六进制中遇到总范围超出 \x00 - \xff ,则报错,不会截断读取。
\x1234 error
\xg error
四、int 赋值
当有多个字符的 char 型数据给 int 类型赋值时,为 256 进制。
示例:
11 49*256 + 49
\0011 1*256 + 49
版权声明:本文为qq_30534935原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。