Escape sequences
Las secuencias de escape se utilizan para representar ciertos caracteres especiales dentro de string literals y character literals .
Las siguientes secuencias de escape están disponibles:
|
Secuencia de
escape |
Descripción | Representación |
|---|---|---|
| Secuencias de escape simples | ||
\'
|
comilla simple |
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
|
alimentación de formulario - nueva página |
byte
0x0c
en codificación ASCII
|
\n
|
alimentación de línea - nueva línea |
byte
0x0a
en codificación ASCII
|
\r
|
retorno de carro |
byte
0x0d
en codificación ASCII
|
\t
|
tabulación horizontal |
byte
0x09
en codificación ASCII
|
\v
|
tabulación vertical |
byte
0x0b
en codificación ASCII
|
| Secuencias de escape numéricas | ||
\
nnn
|
valor octal arbitrario |
unidad de código
nnn
(1~3 dígitos octales)
|
\o{
n...
}
(desde C++23)
|
unidad de código
n...
(número arbitrario de dígitos octales)
|
|
\x
n...
|
valor hexadecimal arbitrario |
unidad de código
n...
(número arbitrario de dígitos hexadecimales)
|
\x{
n...
}
(desde C++23)
|
||
| Secuencias de escape condicionales [1] | ||
\
c
|
Definido por la implementación | Definido por la implementación |
| Nombres de caracteres universales | ||
\u
nnnn
|
valor
Unicode
arbitrario;
puede resultar en varias unidades de código |
punto de código
U+
nnnn
(4 dígitos hexadecimales)
|
\u{
n...
}
(desde C++23)
|
punto de código
U+
n...
(número arbitrario de dígitos hexadecimales)
|
|
\U
nnnnnnnn
|
punto de código
U+
nnnnnnnn
(8 dígitos hexadecimales)
|
|
\N{
NAME
}
(desde C++23)
|
carácter Unicode arbitrario |
carácter nombrado por
NAME
(ver
abajo
)
|
-
↑
Las secuencias de escape condicionales son soportadas condicionalmente. El carácter
cen cada secuencia de escape condicional es un miembro del basic source character set (until C++23) basic character set (since C++23) que no es el carácter que sigue a la\en cualquier otra secuencia de escape.
Contenido
Rango de nombres de caracteres universales
Notas\ 0 es la secuencia de escape octal más comúnmente utilizada, porque representa el carácter nulo de terminación en cadenas terminadas en nulo . El carácter de nueva línea \n tiene un significado especial cuando se utiliza en E/S en modo texto : se convierte a la representación de nueva línea específica del SO, generalmente un byte o secuencia de bytes. Algunos sistemas marcan sus líneas con campos de longitud en su lugar. Las secuencias de escape octales tienen un límite de tres dígitos octales, pero terminan en el primer carácter que no sea un dígito octal válido si se encuentra antes. Las secuencias de escape hexadecimales no tienen límite de longitud y terminan en el primer carácter que no sea un dígito hexadecimal válido. Si el valor representado por una única secuencia de escape hexadecimal no cabe en el rango de valores representado por el tipo de carácter utilizado en este literal de cadena ( char , char8_t , (since C++20) char16_t , char32_t , (since C++11) o wchar_t ), el resultado no está especificado.
La secuencia de escape del signo de interrogación \ ? se utiliza para evitar que los trigraphs sean interpretados dentro de literales de cadena: una cadena como "??/" se compila como " \" , pero si el segundo signo de interrogación se escapa, como en "? \? /" , se convierte en "??/" . Dado que los trigraphs han sido eliminados de C++, la secuencia de escape del signo de interrogación ya no es necesaria. Se conserva para compatibilidad con C++14 (y revisiones anteriores) y C. (since C++17)
Ejemplo
Ejecutar este código
Salida: This is a test She said, "Sells she seashells on the seashore?" Informes de defectosLos siguientes informes de defectos que cambiaron el comportamiento se aplicaron retroactivamente a estándares C++ publicados anteriormente.
Véase también
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||