c++ 之转义字符

一、转义序列编码

字符名称ASCII符号C++代码十进制十六进制
换行符NL(LF)\n100xA
水平制表符HT\t90x9
垂直制表符VT\v110xB
退格BS\b80x8
回车CR\r130xD
振铃BEL\a70x7
反斜杠\\\920x5C
问号?\?630x3F
单引号\’390x27
双引号"\"340x22

二、八进制转义

由 \ + 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版权协议,转载请附上原文出处链接和本声明。