49 votos

En C#, ¿cuál es la diferencia entre \n y \r\n?

En C #, ¿cuál es la diferencia entre \n y \r\n ?

64voto

Peter van Kekem Puntos 366

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

A veces puede causar problemas, especialmente al ejecutar código en diferentes plataformas. Puedes evitar esto usando Environment.NewLine.

Por favor consulta ¿Cuál es la diferencia entre \r, \n y \r\n ?! para más información. ¡Feliz lectura!

42voto

Dave Puntos 3005

La Diferencia

Existen algunos caracteres que pueden indicar una nueva línea. Los más comunes son estos dos:

* '\n' o '0x0A' (10 en decimal) -> Este carácter se llama "Avance de línea" (LF).
* '\r' o '0x0D' (13 en decimal) -> Este se llama "Retorno de carro" (CR).

Los diferentes Sistemas Operativos manejan las nuevas líneas de manera diferente. Aquí hay una lista corta de los más comunes:

* DOS y Windows

Ellos esperan que una nueva línea sea la combinación de dos caracteres, es decir '\r\n' (o 13 seguido de 10).

* Unix (y por ende Linux también)

Unix utiliza solo '\n' para indicar una nueva línea.

* Mac

Mac utiliza solo '\r'.

Tomado de Aquí

11voto

Jon Skeet Puntos 692016

"\n" es simplemente un avance de línea (Unicode U+000A). Este es típicamente el separador de líneas de Unix.

"\r\n" es un retorno de carro (Unicode U+000D) seguido de un avance de línea (Unicode U+000A). Este es típicamente el separador de líneas de Windows.

4voto

Ankur Bhutani Puntos 341

\n = LF (Avance de línea) // Se utiliza como un carácter de nueva línea en Unix

\r = CR (Retorno de carro) // Se utiliza como un carácter de nueva línea en Mac

\r\n = CR + LF // Se utiliza como un carácter de nueva línea en Windows

(char)13 = \r = CR

Environment.NewLine = cualquiera de los códigos anteriores basado en el sistema operativo

// .NET proporciona la clase Environment que proporciona muchos datos basados en los sistemas operativos, por lo que si la aplicación se construye en Windows y utilizas CR + LF ("\n\r" en lugar de Environment.NewLine) como el carácter de nueva línea en tus cadenas, luego Microsoft crea una máquina virtual para ejecutar aplicaciones .NET en Unix, entonces habrá problema. Así que siempre debes usar Environment.NewLine cuando desees un carácter de nueva línea. Ahora no necesitas preocuparte por el sistema operativo.

2voto

havok Puntos 653

Básicamente se reduce a la norma de Windows: \r\n y en los sistemas basados en Unix se utiliza: \n

http://es.wikipedia.org/wiki/Nueva_línea

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X