Las secuencias de escape se utilizan para representar ciertos caracteres especiales dentro string literales y literales de carácter.

Están disponibles las siguientes secuencias de escape (se pueden proporcionar secuencias de escape adicionales con semántica definida por la implementación):

Escapar
secuencia
Descripción Representación
' una frase byte 0x27 en codificación ASCII
" comilla doble byte 0x22 en codificación ASCII
? signo de interrogación byte 0x3f en codificación ASCII
\ barra invertida byte 0x5c en codificación ASCII
a campana audible byte 0x07 en codificación ASCII
b retroceso byte 0x08 en codificación ASCII
f formulario de alimentación – nueva página byte 0x0c en codificación ASCII
n avance de línea – nueva línea byte 0x0a en codificación ASCII
r retorno de carro byte 0x0d en codificación ASCII
t pestaña horizontal byte 0x09 en codificación ASCII
v pestaña vertical byte 0x0b en codificación ASCII
nnn valor octal arbitrario byte nnn
xnn valor hexadecimal arbitrario byte nn
unnnn(desde C ++ 11) nombre de personaje universal
(arbitrario Unicode valor);
puede resultar en varios caracteres
punto de código U+nnnn
Unnnnnnnn(desde C ++ 11) nombre de personaje universal
(arbitrario Unicode valor);
puede resultar en varios caracteres
punto de código U+nnnnnnnn

Notas

De las secuencias de escape octal, es el más útil porque representa la terminación null personaje en null-cadenas terminadas.

El personaje de nueva línea n tiene un significado especial cuando se usa en E / S en modo texto: se convierte a la representación de nueva línea específica del sistema operativo, generalmente un byte o una secuencia de bytes. En cambio, algunos sistemas marcan sus líneas con campos de longitud.

Las secuencias de escape octales tienen un límite de tres dígitos octales, pero terminan en el primer carácter que no es un dígito octal válido si se encuentran antes.

Las secuencias de escape hexadecimales no tienen límite de longitud y terminan en el primer carácter que no es un dígito hexadecimal válido. Si el valor representado por una sola secuencia de escape hexadecimal no se ajusta al rango de valores representados por el tipo de carácter utilizado en este string literalchar, char16_t, char32_t, o wchar_t), el resultado no está especificado.

Un nombre de personaje universal en un estrecho string literal o de 16 bits string literal puede correlacionarse con más de un carácter, p. ej. U0001f34c es 4 char unidades de código en UTF-8 (xF0x9Fx8Dx8C) y 2 char16_t unidades de código en UTF-16 (uD83CuDF4C).

Si un nombre de carácter universal no corresponde a un punto de código en ISO / IEC 10646 (el rango 0x0-0x10FFFF, inclusive) o si un nombre de carácter universal corresponde a un punto de código sustituto (el rango 0xD800-0xDFFF, inclusive), el programa está mal formado.

La secuencia de escape del signo de interrogación ? se utiliza para evitar que los trígrafos se interpreten en el interior string literales: a string tal como "??/" se compila como "", pero si se escapa el segundo signo de interrogación, como en "??/", se vuelve "??/"

Ejemplo

#includeintmain()
    std::printf("ThisnisnantestnnShe said, "How are you?"n");

Producción:

This
is
a
test
 
She said,"How are you?"

Ver también

  • Gráfico ASCII