294 votes

Quelle est la différence entre un "saut de ligne" et un "retour chariot" ?

S'il y a deux mots-clés, ils doivent avoir leur propre signification. Je veux donc savoir ce qui les rend différents et quel est leur code.

2 votes

Jetez un coup d'œil à Wikipedia : fr.wikipedia.org/wiki/Carriage_Return#Computers

5 votes

3 votes

Jetez un coup d'œil à cet article, il clarifie tout de manière impeccable. digital.ni.com/public.nsf/allkb/

460voto

Tsunamis Points 540

A alimentation en ligne signifie avancer d'une ligne. Le code est le suivant \n .
A retour à la ligne signifie déplacer le curseur au début de la ligne. Le code est \r .

Les éditeurs de Windows utilisent encore souvent la combinaison des deux comme \r\n dans les fichiers texte. Unix n'utilise principalement que le \n .

La séparation vient de l'époque des machines à écrire, lorsque l'on tournait la roue pour déplacer le papier afin de changer de ligne et que l'on déplaçait le chariot pour recommencer à taper au début d'une ligne. Cela se faisait en deux étapes.

29 votes

On pourrait penser que même les vieilles machines à écrire auraient dû penser à faire \n représentent deux étapes.

34 votes

@ColacX Il est souvent utile d'effectuer un retour chariot sans saut de ligne lorsque l'on souhaite écraser le texte de la ligne en cours. Cela s'applique aussi bien aux machines à écrire qu'aux terminaux.

3 votes

Ainsi, sous Windows, la séquence correcte pour la fin d'une ligne serait la suivante \n\r ?

55voto

Monalisa Das Points 517

Puisque je ne peux pas commenter parce que je n'ai pas assez de points de récompense, je dois répondre à la réponse correcte donnée par @Burhan Khalid.
En langage courant, la touche Entrée est une combinaison de retour chariot et de saut de ligne.
Le retour chariot pointe le curseur au début de la ligne horizontalement et le saut de ligne déplace le curseur à la ligne suivante verticalement. \n ).
Référence - https://en.wikipedia.org/wiki/Carriage_return#Computers

0 votes

Il est également devenu la différence entre la rupture de ligne et la rupture de paragraphe lorsque les ordinateurs ont remplacé les machines à écrire - le traitement de texte.

0 votes

Il semble qu'il s'agisse uniquement de Windows. C'est en quelque sorte correct pour les systèmes de type Unix, mais les fichiers texte ne contiennent que le caractère de nouvelle ligne, \n qui apparaît comme un saut de ligne + retour chariot lors de son affichage à l'écran.

11voto

Burhan Khalid Points 50578

Ces deux éléments sont des éléments primaires de l'ancien temps de l'imprimerie.

Le retour du chariot vient de l'époque des imprimantes télétype/anciennes machines à écrire, où le chariot retournait littéralement à la ligne suivante, et poussait le papier vers le haut. C'est ce que nous appelons aujourd'hui \r .

Alimentation en ligne LF signale la fin de la ligne, il signale que la ligne est terminée - mais ne déplace pas le curseur à la ligne suivante . En d'autres termes, il ne "renvoie" pas le curseur/la tête de l'imprimante à la ligne suivante.

Pour plus de détails, le puissant wikipedia à la rescousse.

16 votes

Je pense que le retour chariot fait référence au déplacement au début de la même ligne, plutôt qu'au déplacement à la ligne suivante. L'analogie avec la machine à écrire fait référence à la fois au passage à la ligne suivante verticalement (saut de ligne) et au retour au début de la ligne horizontalement (retour chariot). fr.wikipedia.org/wiki/Carriage_return

1voto

Le "saut de ligne" (0x0A ou 10) et le "retour chariot" (0x0D ou 13) sont des valeurs à un octet. Ces valeurs constituent la norme acceptée pour LF/CR. Dans la plupart des langues, elles sont saisies comme des "caractères". Vous pouvez trouver ces valeurs dans n'importe quelle "table ascii" standard.

Par exemple, en C#, une chaîne de caractères telle que :

String str = "\n\r";

a une longueur de deux caractères (sans tenir compte du caractère nul caché '0x00' requis dans les types de chaîne). Toutefois, vous pourriez créer un tableau équivalent de type caractère, comme suit :

char[] c = new char[](){0x0A,0x0D}; // lf, cr

Prograide.com

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.

Powered by:

X