CR et LF sont des caractères de contrôle, respectivement codés 0x0D
(13 décimales) et 0x0A
(10 décimales).
Ils sont utilisés pour marquer un saut de ligne dans un fichier texte. Comme vous l'avez indiqué, Windows utilise deux caractères : la séquence CR LF ; Unix n'utilise que LF et l'ancien MacOS ( MacIntosh pré-OSX ) utilisait CR.
Une perspective historique apocryphe :
Comme indiqué par Peter , CR = Retour de chariot et LF = Alimentation en ligne Ces deux expressions trouvent leur origine dans les anciennes machines à écrire / TTY. LF déplaçait le papier vers le haut (mais gardait la position horizontale identique) et CR ramenait le "chariot" de sorte que le prochain caractère tapé se trouve à la position la plus à gauche sur le papier (mais sur la même ligne). CR+LF faisait les deux, c'est-à-dire qu'il se préparait à taper une nouvelle ligne. Au fil du temps, la sémantique physique des codes n'était pas applicable, et comme la mémoire et l'espace sur les disquettes étaient limités, certains concepteurs de systèmes d'exploitation ont décidé de n'utiliser qu'un seul des caractères, car ils ne communiquaient pas très bien entre eux ;-)
La plupart des éditeurs de texte modernes et des applications orientées texte proposent des options/paramètres, etc. qui permettent de détecter automatiquement la convention de fin de ligne du fichier et de l'afficher en conséquence.
9 votes
Très similaire, mais pas un exact duplicata.
\n
est généralement représenté par un saut de ligne, mais ce n'est pas nécessairement un saut de ligne.107 votes
CR et LF sont des caractères de contrôle ASCII et Unicode tandis que
\r
et\n
sont des abstractions utilisées dans certains langages de programmation. Fermer cette question revient à passer sous silence des différences fondamentales entre les deux questions et perpétue la désinformation.5 votes
@AdrianMcCarthy C'est un problème avec la façon dont les votes serrés agissent comme des réponses d'une certaine façon ; une réponse affirmant que les deux étaient les mêmes pourrait être déclassée et ensuite grisée comme très, très fausse, mais il suffit de 4 votes d'accord (comparables aux votes positifs) pour qu'un vote serré très faux se produise, sans possibilité de contrer le vote avant qu'il ne se produise.
0 votes
Cette formulation de la question est certes meilleure, mais il s'agit toujours, à toutes fins pratiques, de la même question.
7 votes
@JukkaK.Korpela : Non, ça ne l'est vraiment pas.
\n
ne signifie pas la même chose dans tous les langages de programmation.0 votes
@AdrianMcCarthy, quel système d'exploitation met "CR" et/ou "LF" à la fin d'une ligne pour indiquer que c'est la fin de la ligne ? Je n'en ai jamais entendu parler. Si vous dites que CR et LF sont représentations des codes pour le retour de chariot et le saut de ligne, cela a du sens et " \r " et " \n " sont également des représentations.
0 votes
@user34660 : Je ne comprends pas votre question.
'\r'
correspond à un caractère de contrôle de retour chariot (généralement abrégé en CR) dans de nombreux systèmes.'\n'
cependant, ne pas représente nécessairement un caractère de contrôle de saut de ligne, comme expliqué dans ma réponse à la question liée. C'est précisément cette distinction qui fait que cette question n'est pas un doublon de la question liée.