Page 1 sur 2

À quoi sert un "\r" ?

MessagePublié: ven. janv. 17, 2025 10:27 am
par Hexin

Salut à tous, j'ai une question qui me trotte dans la tête. Je sais que "\n" représente un saut de ligne (newline), mais j'aimerais comprendre l'utilité de "\r". Est-ce que c'est pour "return" ? Et pourquoi voit-on souvent les deux ensemble comme "\r\n" ? Merci d'avance pour vos éclaircissements !


Re: À quoi sert un "\r" ?

MessagePublié: ven. janv. 17, 2025 2:50 pm
par Caboux
Bonjour,

Effectivement, "\r" signifie "Carriage Return" (retour chariot en français). C'est une référence aux machines à écrire où il fallait ramener le chariot au début de la ligne.


L'utilisation de "\r\n" ensemble vient des différences entre systèmes d'exploitation :




  • Windows utilise "\r\n" pour marquer la fin d'une ligne




  • Linux/Unix utilise seulement "\n"




  • MacOS (avant OS X) utilisait seulement "\r"




C'est pour des raisons historiques et de compatibilité qu'on retrouve parfois les deux.


Re: À quoi sert un "\r" ?

MessagePublié: sam. janv. 18, 2025 1:42 am
par VersaillesByte

Pour compléter ce qui a été dit, le "\r" tout seul peut aussi être utilisé pour écraser une ligne. Par exemple dans un terminal, si tu fais un print avec "\r" sans "\n", ton texte suivant va remplacer la ligne actuelle au lieu d'en créer une nouvelle. C'est pratique pour faire des barres de progression qui se mettent à jour sur place.


Re: À quoi sert un "\r" ?

MessagePublié: sam. janv. 18, 2025 1:28 pm
par MaîtreGit

moi j'ai tjrs galéré avec ces caractères spéciaux... une fois j'ai passé 3h a debugger un script parce que j'avais des fichiers créés sous windows et traités sous linux lol


Re: À quoi sert un "\r" ?

MessagePublié: sam. janv. 18, 2025 7:01 pm
par RivieraLoop
C'est une référence aux machines à écrire où il fallait ramener le chariot au début de la ligne.

Ça me fait sentir vieux mais je me souviens encore d'avoir utilisé une machine à écrire dans les années 90 ! Le retour chariot était littéralement un levier qu'on actionnait pour ramener la tête d'impression au début et passer à la ligne suivante.


Si ça t'intéresse, c'est amusant de voir comment ces vestiges de technologies anciennes persistent dans notre informatique moderne.


Re: À quoi sert un "\r" ?

MessagePublié: dim. janv. 19, 2025 2:16 am
par Sarnel
Attention quand vous manipulez des fichiers texte entre différentes plateformes ! Si vous ouvrez un fichier Unix (avec juste \n) dans le bloc-notes Windows, tout le texte apparaîtra sur une seule ligne. Inversement, un fichier Windows ouvert sous certains éditeurs Unix peut afficher des ^M à la fin de chaque ligne (représentation visuelle du \r).

Pour convertir entre les formats, vous pouvez utiliser des outils comme dos2unix ou unix2dos.


Re: À quoi sert un "\r" ?

MessagePublié: dim. janv. 19, 2025 3:35 pm
par ParisienNull

Je suis pas vraiment un expert mais je crois que "\r\n" c'est aussi un héritage des communications série (RS-232) où on avait besoin des deux pour bien gérer la transmission. Ça remonte aux années 70-80 et Windows a gardé cette convention.


Re: À quoi sert un "\r" ?

MessagePublié: lun. janv. 20, 2025 12:18 am
par Zou
Pour faire simple:
\r = retour au début de la ligne
\n = passage à la ligne suivante

Dans l'idéal, il faudrait les deux pour un comportement optimal (retourner au début ET descendre d'une ligne). Mais comme les autres l'ont dit, par convention, certains OS ont décidé que \n ferait les deux, d'autres que \r\n était nécessaire.


D'ailleurs, en février 2025, Microsoft a annoncé qu'ils allaient finalement standardiser leurs éditeurs de texte pour supporter nativement les fins de ligne Unix (\n) dans la prochaine mise à jour majeure de Windows. Ça n'a pris que 40 ans...


Re: À quoi sert un "\r" ?

MessagePublié: lun. janv. 20, 2025 7:05 am
par MontpellierAI
D'ailleurs, en février 2025, Microsoft a annoncé qu'ils allaient finalement standardiser leurs éditeurs de texte pour supporter nativement les fins de ligne Unix (\n) dans la prochaine mise à jour majeure de Windows.

C'est une fake news ça, non ? Je n'ai rien vu passer à ce sujet...


Re: À quoi sert un "\r" ?

MessagePublié: lun. janv. 20, 2025 1:15 pm
par Yques
Petite astuce pratique: si vous programmez, la plupart des bons IDE et éditeurs de code détectent et gèrent automatiquement le type de retour à la ligne. Visual Studio Code, par exemple, affiche le type de fin de ligne (CRLF pour \r\n ou LF pour \n) dans la barre d'état en bas et vous permet de changer facilement.

Ça peut vous éviter des maux de tête, surtout si vous travaillez en équipe avec des gens sur différents OS!