web-dev-qa-db-fra.com

Le retour chariot Windows \ r \ n est-il composé de deux caractères ou d’un caractère?

Le retour chariot de Windows est \r\n alors que c'est \n sous Unix, c'est \r\n traité comme deux personnages?

72
Oh Chin Boon

Ce sont deux personnages:

  • \r est le retour chariot;
  • \n est un saut de ligne.

Deux caractères combinés représentent une nouvelle ligne sous Windows. Alors que sous Linux, \n représente la nouvelle ligne. Il déplace le curseur au début de la nouvelle ligne sous Linux. Sous Windows, le curseur reste dans la même colonne de la console mais sur la ligne suivante.

\r sur Linux a le même effet que sur Windows: déplace le curseur au début de la ligne. Il est possible d’imprimer différentes informations sur la même ligne où \r est utilisé à la place de \n.

103
Alexey Ivanov

En fait, \r is 0x0D (^M) and \n is 0x0A (^J), mais ..... sous Windows:

\n will write 0x0D 0x0A

sous unix:

\r will write 0x0D
\n will write 0x0A
7
TMS

Dépend du réglage. \r\n A une largeur de deux octets (en ASCII, UTF-8, etc.), mais les bibliothèques d'E/S telles que la bibliothèque stdio de C et d'autres, lorsqu'elles fonctionnent en mode texte, peuvent traduire entre \n Et \r\n De manière quasi transparente.

Sur une plate-forme Windows, un programme C lisant un flux en mode texte txt_in Avec

while ((c = getc(txt_in)) != EOF)
    printf("%02x\n", c);

ne signalera pas le code ASCII pour \r. À l'inverse, putc('\n', txt_out) écrira en fait \r\n dans le flux en mode texte txt_out.

6
Fred Foo

Windows ne fait pas la distinction entre \r\n et deux autres personnages. Cependant, il existe une situation dans laquelle il est traité comme un caractère: si vous utilisez le runtime C et ouvrez un fichier sous forme de texte, \r\n dans le fichier sera lu comme \n, et \n sera écrit dans le fichier sous la forme \r\n.

5
ymett

Oui, ce sont deux caractères: retour chariot '\ r' suivi du saut de ligne '\ n'.

2
Peter Ruderman

J'ai effectué des tests (rien d'extraordinaire) avec Notepad ++ et Sublime Text 2 sous Windows, et il s'avère que \r et \n sont bien 2 caractères distincts, mais ...

Différents éditeurs de texte peuvent insérer ou ne pas insérer \r lorsque la touche Retour est enfoncée

Essayez ce qui suit dans votre éditeur de texte:

1
2
3
4
5

Appuyez ensuite sur Ctrl + F , activez les expressions régulières et recherchez \r. En fonction de votre éditeur de texte et de ses paramètres, vous pouvez "taper" ou "ne pas taper" sur un caractère à la fin de chaque ligne. Si le texte ci-dessus est copié-collé depuis un autre éditeur, le comportement peut également différer ...

Certains éditeurs de texte autorisent des personnalisations dans leurs paramètres, où vous pouvez spécifier si vous préférez \r\n ou style unix \n à insérer lorsque vous appuyez sur Retour . En plus de cela, ils peuvent vous permettre de choisir appliquer un style cohérent en supprimant ou en insérant le \r caractère avant de sauvegarder un fichier.

0
Asotos