Explication détaillée des caractères d'échappement en langage C
introduction
Caractères, généralement après avoir tapé sur le clavier, les caractères directement affichables deviennent des caractères affichables .
Cependant, certains caractères n'ont pas de touche correspondante sur le clavier. La plupart de ces caractères sont conçus pour le contrôle et sont appelés caractères de contrôle. Si vous souhaitez saisir des caractères de contrôle, vous devez utiliser des caractères d'échappement. Il s'agit d'utiliser des caractères commençant par "\".
Caractère d'échappement
En langage C, il n'y a pas beaucoup de types de caractères d'échappement, et il y en a probablement:
-
\ a → cloche
-
\ f → changer de page
-
\ n → nouvelle ligne
-
\ 0 → fin de la chaîne de caractères
-
\ r → retour chariot (retour au début de la ligne courante)
-
\ b → retour arrière
-
\ t → Onglet Horizontal
-
\ v → onglet vertical
Il n'y a rien à dire sur les premiers d'entre eux. Il convient de mentionner que la signification de \ b est retour arrière, ce qui signifie que le curseur est déplacé vers l'unité précédente . Par exemple printf("123\b45");
, il imprimera 1245 après lui, mais printf("12345\b");
il imprimera toujours 12345 à la fois. Parce que \ b ne déplace le curseur que par derrière 3 Déplacé au début de 3, après la première fonction de sortie, puis imprimé 45, 3 a été écrasé, il semble donc supprimé, mais lorsque \ b est placé à la fin, car seulement après le déplacement du curseur Rien n'est fait et il semble qu'il n'a pas été supprimé. Par exemple, le code suivant:
char a = 'a', b = 'b', c = 'c';
printf("%c %c %c\n",a,b,c);
printf("%c%c\b%c\n",a,b,c);
printf("%c%c%c\b\n", a, b, c);
printf("123\b45");
Les résultats de l'opération sont les suivants:
et le \ v suivant est une tabulation verticale, ce qui signifie que l'entrée est alignée avec la position du texte après le saut de ligne. Tout comme une table. Mais cela ne sert à rien dans la fenêtre de ligne de commande, généralement utilisée uniquement pour l'édition de texte. \ t est une tabulation horizontale, qui est exprimée en appuyant sur une tabulation, tout comme un long espace; en fait, dans le texte, un espace est également considéré comme un caractère, et la touche de tabulation est l'espace que nous comprenons habituellement.
Imprimer les caractères de transfert
Lorsque nous écrivons du code, nous pouvons rencontrer des situations où nous ne voulions pas initialement utiliser de caractères d'échappement, mais le système les distingue pour les caractères d'échappement; par exemple, nous voulons imprimer: D: \ data \ text \ main.c. À ce stade, nous trouverons L'impression deviendra D: data extmain.c. À ce stade, vous devez ajouter une barre oblique inverse supplémentaire pour imprimer une barre oblique. De même, si nous voulons imprimer des caractères d'échappement, nous devons taper une barre oblique inverse supplémentaire. Par exemple, si nous voulons imprimer \ n, nous avons besoin Tapez \ n À ce stade, les deux premières barres obliques inverses seront considérées comme imprimant une barre oblique inverse et ne seront pas associées aux caractères suivants pour former des caractères d'échappement. Donc, notre code doit être changé en:
`printf (" D: \ data \ text \ main.c "); La
sortie est la suivante:
Autres personnages d'échappement
En langage C, tous les caractères peuvent être représentés par "+ valeur de code ASCII".
- '\ x' + nombre hexadécimal dd
- '\' + nombre octal jjj
Où dd est le nombre de bits qui peuvent être utilisés, si le dépassement provoquera une erreur d'impression des caractères, comme le code ASCII est un 97, peut être utilisé:
le printf ("\ X61");
le printf ("\ 141 is");
imprimer les résultats comme suit :
Notez ici que les nombres décimaux ne peuvent pas être saisis et que tous les nombres octaux ou hexadécimaux ne peuvent pas être convertis en un caractère de cette manière. Parce que la valeur de code ASCII que nous connaissons est représentée par un nombre décimal. Mais certains nombres octaux ou hexadécimaux auront une partie décimale lorsqu'ils sont convertis en nombres décimaux. Ces nombres octaux et hexadécimaux ne peuvent pas être convertis en caractères.