Escape sequences
Les séquences d'échappement sont utilisées pour représenter certains caractères spéciaux dans les littéraux de chaîne et les littéraux de caractère .
Les séquences d'échappement suivantes sont disponibles :
|
Séquence
d'échappement |
Description | Représentation |
|---|---|---|
| Séquences d'échappement simples | ||
\'
|
guillemet simple |
octet
0x27
en codage ASCII
|
\"
|
guillemet double |
octet
0x22
en codage ASCII
|
\?
|
point d'interrogation |
octet
0x3f
en codage ASCII
|
\\
|
barre oblique inverse |
octet
0x5c
en codage ASCII
|
\a
|
sonnerie audible |
octet
0x07
en codage ASCII
|
\b
|
retour arrière |
octet
0x08
en codage ASCII
|
\f
|
saut de page |
octet
0x0c
en codage ASCII
|
\n
|
saut de ligne |
octet
0x0a
en codage ASCII
|
\r
|
retour chariot |
octet
0x0d
en codage ASCII
|
\t
|
tabulation horizontale |
octet
0x09
en codage ASCII
|
\v
|
tabulation verticale |
octet
0x0b
en codage ASCII
|
| Séquences d'échappement numériques | ||
\
nnn
|
valeur octale arbitraire |
unité de code
nnn
(1 à 3 chiffres octaux)
|
\o{
n...
}
(depuis C++23)
|
unité de code
n...
(nombre arbitraire de chiffres octaux)
|
|
\x
n...
|
valeur hexadécimale arbitraire |
unité de code
n...
(nombre arbitraire de chiffres hexadécimaux)
|
\x{
n...
}
(depuis C++23)
|
||
| Séquences d'échappement conditionnelles [1] | ||
\
c
|
Défini par l'implémentation | Défini par l'implémentation |
| Noms de caractères universels | ||
\u
nnnn
|
valeur
Unicode
arbitraire ;
peut produire plusieurs unités de code |
point de code
U+
nnnn
(4 chiffres hexadécimaux)
|
\u{
n...
}
(depuis C++23)
|
point de code
U+
n...
(nombre arbitraire de chiffres hexadécimaux)
|
|
\U
nnnnnnnn
|
point de code
U+
nnnnnnnn
(8 chiffres hexadécimaux)
|
|
\N{
NAME
}
(depuis C++23)
|
caractère Unicode arbitraire |
caractère nommé par
NAME
(voir
ci-dessous
)
|
-
↑
Les séquences d'échappement conditionnelles sont conditionnellement prises en charge. Le caractère
cdans chaque séquence d'échappement conditionnelle est un membre du basic source character set (jusqu'en C++23) basic character set (depuis C++23) qui n'est pas le caractère suivant le\dans toute autre séquence d'échappement.
ContenuPlage des noms de caractères universels
Notes\ 0 est la séquence d'échappement octale la plus couramment utilisée, car elle représente le caractère nul de terminaison dans les chaînes de caractères null-terminated . Le caractère de nouvelle ligne \n a une signification particulière lorsqu'il est utilisé dans les E/S en mode texte : il est converti en la représentation de nouvelle ligne spécifique au système d'exploitation, généralement un octet ou une séquence d'octets. Certains systèmes marquent leurs lignes avec des champs de longueur à la place. Les séquences d'échappement octales ont une limite de trois chiffres octaux, mais se terminent au premier caractère qui n'est pas un chiffre octal valide si celui-ci est rencontré plus tôt. Les séquences d'échappement hexadécimales n'ont pas de limite de longueur et se terminent au premier caractère qui n'est pas un chiffre hexadécimal valide. Si la valeur représentée par une seule séquence d'échappement hexadécimale ne correspond pas à la plage de valeurs représentée par le type de caractère utilisé dans ce littéral de chaîne ( char , char8_t , (since C++20) char16_t , char32_t , (since C++11) ou wchar_t ), le résultat n'est pas spécifié.
La séquence d'échappement du point d'interrogation \ ? est utilisée pour empêcher l'interprétation des trigraphes dans les littéraux de chaîne : une chaîne telle que "??/" est compilée comme " \" , mais si le second point d'interrogation est échappé, comme dans "? \? /" , elle devient "??/" . Les trigraphes ayant été supprimés du C++, la séquence d'échappement du point d'interrogation n'est plus nécessaire. Elle est conservée pour la compatibilité avec C++14 (et les révisions antérieures) et C. (depuis C++17)
Exemple
Exécuter ce code
Sortie : This is a test She said, "Sells she seashells on the seashore?" Rapports de défautsLes rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
Voir aussi
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||