Séquences d'échappement
Remonter à Présentation des constantes caractère - Index
La barre oblique inversée (\
) sert à introduire une séquence d'échappement permettant la représentation visuelle de certains caractères non graphiques. Par exemple, la constante \n
désigne un caractère de saut de ligne.
La barre oblique inversée est utilisée avec un nombre octal ou hexadécimal afin de représenter le symbole ASCII ou le code de contrôle correspondant au nombre. Par exemple, '\03'
correspond à CTRL-C, et '\x3F'
au point d'interrogation. Dans une séquence d'échappement, vous pouvez utiliser n'importe quelle chaîne de trois valeurs octales au maximum, ou autant de chiffres hexadécimaux que vous le voulez, à condition que la valeur soit comprise dans l'intervalle autorisé pour le type de données char (de 0
à 0xff
). Les grands nombres entraînent une erreur de compilation, signalée par le message Constante numérique trop grande
. Par exemple, le nombre octal \777
est supérieur à la valeur maximale permise qui est \377
; une erreur est donc générée. Le premier caractère non octal ou non hexadécimal rencontré dans une séquence d'échappement octale ou hexadécimale marque la fin de celle-ci.
Par exemple,
printf("\x0072.1 Un système d'exploitation");
L'interprétation attendue serait "\x007"
et "2.1Un système d'exploitation"
. Cependant, le compilateur compile cette écriture comme le nombre hexadécimal "\x0072"
et la chaîne littérale ".1 Un système d'exploitation"
.
Pour éviter ces problèmes, écrivez votre code sous cette nouvelle forme :
printf("\x007" "2.1 Un système d'exploitation");
D'autres ambiguïtés peuvent surgir si une séquence d'échappement octale est suivie d'un chiffre non octal. Par exemple, comme les chiffres 8
et 9
ne sont pas admis en base 8, la constante \258
sera interprétée comme une constante de deux caractères, formée de \25
et de 8
.
Le tableau ci-après indique les séquences d'échappement possibles.
Séquences d'échappement
Remarque: Vous devez utiliser
\\
pour représenter la barre oblique inversée ASCII servant, par exemple, aux chemins d'accès du système d'exploitation.
Séquence |
Valeur |
Car |
Effet |
\a |
0x07 |
BEL |
Signal sonore |
\b |
0x08 |
BS |
Retour arrière |
\f |
0x0C |
FF |
Saut de page |
\n |
0x0A |
LF |
Saut de ligne |
\r |
0x0D |
CR |
Retour chariot |
\t |
0x09 |
HT |
Tabulation horizontale |
\v |
0x0B |
VT |
Tabulation verticale |
\\ |
0x5c |
\ |
Barre oblique inversée |
\' |
0x27 |
' |
Apostrophe |
\" |
0x22 |
" |
Guillemet |
\? |
0x3F |
? |
Point d'interrogation |
\O |
quelconque |
| |
\xH |
quelconque |
| |
\XH |
quelconque |
|
Voir aussi
- Constantes
- Constantes entières
- Constantes à virgule flottante
- Constantes caractère
- Les trois types char
- Constantes à caractères étendus et à caractères multiples
- Constantes chaîne
- Constantes énumération
- Constantes et représentation interne
- Représentation interne des types numériques
- Expressions constantes