Quelle est la signification des caractères de contrôle suivants :
-
Retour chariot
-
Alimentation en ligne
-
Alimentation en formulaires
Quelle est la signification des caractères de contrôle suivants :
Retour chariot
Alimentation en ligne
Alimentation en formulaires
Retour chariot signifie revenir au début de la ligne en cours sans avancer vers le bas. Le nom vient du chariot d'un imprimeur, car les moniteurs étaient rares à l'époque où le nom a été inventé. Cette expression est couramment utilisée comme \r
, en abrégé CR et a une valeur ASCII 13
o 0x0D
.
Linefeed signifie avancer vers le bas jusqu'à la ligne suivante ; cependant, il a été reconverti et renommé. Utilisé comme "nouvelle ligne", il met fin à (souvent confondues avec séparation lignes). On l'échappe généralement sous la forme \n
, en abrégé LF ou NL, et a une valeur ASCII 10
o 0x0A
. CRLF (mais pas CRNL) est utilisé pour la paire \r\n
.
Alimentation en formulaires signifie avancer vers le bas jusqu'à la "page" suivante. Il était couramment utilisé comme séparateur de page, mais il est maintenant également utilisé comme séparateur de section. (Il est rarement utilisé dans le code source pour diviser des fonctions ou des groupes de fonctions logiquement indépendants). Les éditeurs de texte peuvent utiliser ce caractère lorsque vous "insérez un saut de page". Ce caractère est généralement échappé sous la forme \f
, en abrégé FF et a une valeur ASCII 12
o 0x0C
.
En tant que caractères de contrôle, ils peuvent être interprétés de diverses manières.
La différence la plus courante (et probablement la seule qui mérite que l'on s'en préoccupe) est que les lignes se terminent par CRLF sous Windows, NL sous Unix, et CR sur les anciens Macs (la situation a changé avec OS X pour être comme Unix). Notez le changement de signification de LF à NL, pour exactement le même caractère, donne les différences entre Windows et Unix. (Windows est, bien sûr, plus récent qu'Unix, il n'a donc pas adopté ce glissement sémantique. Je ne connais pas l'histoire des Macs qui utilisent CR). De nombreux éditeurs de texte peuvent lire des fichiers dans l'un de ces trois formats et les convertir entre eux, mais tous les utilitaires ne le peuvent pas.
Le saut de page est un peu plus intéressant (bien que moins couramment utilisé directement), et avec la définition habituelle du séparateur de page, il ne peut venir qu'entre les lignes (par exemple après la séquence de nouvelles lignes NL, CRLF ou CR) ou au début ou à la fin du fichier.
Le caractère FF peut sembler étrange aujourd'hui (tout comme le caractère de cloche "CTRL-G"), mais il était plus pertinent à l'époque où les écrans vidéo étaient beaucoup moins courants et où les terminaux papier étaient utilisés comme écrans de données.
\r
est un retour chariot et déplace le curseur en arrière comme si je faisais
printf("stackoverflow\rnine")
ninekoverflow
signifie qu'il a déplacé le curseur au début de "stackoverflow" et qu'il écrase les quatre premiers caractères puisque "neuf" fait quatre caractères.
\n
est un caractère de nouvelle ligne qui change la ligne et amène le curseur au début d'une nouvelle ligne comme-
printf("stackoverflow\nnine")
stackoverflow
nine
\f
est le form feed, son utilisation est devenue obsolète mais il est utilisé pour donner une indentation comme
printf("stackoverflow\fnine")
stackoverflow
nine
si je vais écrire comme
printf("stackoverflow\fnine\fgreat")
stackoverflow
nine
great
@IKI c'est le cas : vous pouvez au moins faire la même chose dans le shell de Linux en utilisant printf
de coreutils. Ou même en utilisant echo -en
qui est un buildin de bash.
Jetez un coup d'œil à Wikipedia :
Les systèmes basés sur l'ASCII ou un jeu de caractères compatible utilisent soit LF (Line feed, '), soit LF (Line feed, '). \n ', 0x0A, 10 en décimal) ou CR (Carriage return, ' \r ', 0x0D, 13 en décimal) individuellement, ou CR suivi de LF (CR+LF, 0x0D 0x0A). Ces caractères sont basés sur les commandes de l'imprimante : Le saut de ligne indique qu'une ligne de papier doit sortir de l'imprimante, et un retour de chariot indique que le chariot de l'imprimante doit revenir au début de la ligne en cours.
Les réponses succinctes ne sont élégantes que dans quelques domaines, comme les mathématiques. Windows utilise à la fois 0x0A 0x0D
et ce sont des choix qui ont été faits de manière arbitraire. Les concepts ne sont pas autonomes, donc les réponses succinctes ne conviennent pas dans ces situations.
\f
est utilisé pour le saut de page. Vous ne pouvez pas voir d'effet dans la console. Mais lorsque vous utilisez cette constante de caractère dans votre fichier, vous pouvez voir la différence.
Un autre exemple est que si vous pouvez rediriger votre sortie vers un fichier, vous n'avez pas besoin d'écrire un fichier ou d'utiliser la gestion des fichiers.
Par exemple :
Écrivez ce code en c++
void main()
{
clrscr();
cout<<"helloooooo" ;
cout<<"\f";
cout<<"hiiiii" ;
}
et quand vous compilez ceci, cela génère un exe (par ex. abc.exe
)
alors vous pouvez rediriger votre sortie vers un fichier en utilisant ceci :
abc > xyz.doc
puis ouvrir le fichier xyz.doc
vous pouvez voir le saut de page actuel entre hellooo et hiiii....
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
15 votes
Que signifie "retour chariot" ? Je ne vois pas de "carriage" "returning" sur mon ordinateur portable. :s
13 votes
@JeanHominal le chariot signifie essentiellement le curseur (ou le pointeur dans les anciennes machines à écrire), et retour signifie revenir au début de cette ligne.
3 votes
Je ne vois aucun fil terminé (ni aucune vitre d'ailleurs) dans ma "fenêtre" de "terminal", et il n'y a pas non plus de "télétype" attaché à /dev/tty1. Ils sont tous devenus des métaphores.