web-dev-qa-db-fra.com

En C #, quelle est la différence entre \ n et \ r \ n?

Selon le sujet ...

31
Aperture

\n est Unix, \r est Mac, \r\n est Windows.

Parfois, cela pose des problèmes, en particulier lors de l'exécution de code multiplateforme. Vous pouvez contourner cela en utilisant Environment.NewLine.

Veuillez vous référer à Quelle est la différence entre\r,\n et\r\n?! pour plus d'informations. Bonne lecture

40
Peter van Kekem

La différence

Il y a quelques caractères qui peuvent indiquer une nouvelle ligne. Les habituels sont les deux:

* '\n' or '0x0A' (10 in decimal) -> This character is called "Line Feed" (LF).
* '\r' or '0x0D' (13 in decimal) -> This one is called "Carriage return" (CR).

Différents systèmes d'exploitation gèrent les nouvelles lignes d'une manière différente. Voici une courte liste des plus courants:

* DOS and Windows

Ils s'attendent à ce qu'une nouvelle ligne soit la combinaison de deux caractères, à savoir "\ r\n" (ou 13 suivis de 10).

* Unix (and hence Linux as well)

Unix utilise un seul "\ n" pour indiquer une nouvelle ligne.

* Mac

Les Mac utilisent un seul '\r'.

Tiré de ici

33
Dave

"\ n" est juste un saut de ligne (Unicode U + 000A). Il s'agit généralement du séparateur de ligne Unix.

"\ r\n" est un retour chariot (Unicode U + 000D) suivi d'un saut de ligne (Unicode U + 000A). Il s'agit généralement du séparateur de ligne Windows.

10
Jon Skeet

Se résume essentiellement à la norme Windows:\r\n et aux systèmes basés sur Unix utilisant:\n

http://en.wikipedia.org/wiki/Newline

2
James Hulse

\ n = LF (Line Feed) // Utilisé comme nouveau caractère de ligne sur Unix

\ r = CR (retour chariot) // utilisé comme nouveau caractère de ligne sur Mac

\ r\n = CR + LF // Utilisé comme nouveau caractère de ligne sous Windows

(char) 13 =\r = CR

Environment.NewLine = l'un des codes ci-dessus basé sur le système d'exploitation

// .NET fournit la classe Environment qui fournit de nombreuses données basées sur les systèmes d'exploitation, donc si l'application est construite sur Windows et que vous utilisez CR + LF ("\ n\r" au lieu de Environment.NewLine) comme nouveau caractère de ligne dans vos chaînes, puis Microsoft crée un VM pour exécuter les applications .NET sous Unix, alors il y aura un problème. Donc, vous devriez utilisez toujours Environment.NewLine lorsque vous voulez un nouveau caractère de ligne. Maintenant, vous ne devez pas vous soucier du système d'exploitation.

1
Ankur Bhutani

Il s'agit de la façon dont le système d'exploitation reconnaît les fins de ligne.

  • Utilisateur Windows\r\n
  • Utilisateur Mac\r
  • Linux utilise\n

Moral: si vous développez pour Windows, respectez\r\n. Ou encore mieux, utilisez les fonctions de chaîne C # pour traiter les chaînes qui prennent déjà en compte les fins de ligne (WriteLine, etc.).

0
Palantir

\ n est le saut de ligne utilisé par les systèmes Unix (de type),\r\n est utilisé par Windows. Cela n'a rien à voir avec C #.

0
Adrian Grigore

Ils sont juste \r\n and \n sont des variantes.

\r\n est utilisé dans les fenêtres

\n est utilisé sous mac et linux

0
Thalaivar