2010-09-29 17 views
5

Ambos significan "nueva línea" pero ¿cuándo se usa uno sobre el otro?¿Cuál es la diferencia entre n y r n?

+0

Si se le pasa la '\ R', el carro no volverá a su posición inicial ;-) – chiccodoro

+0

haha ​​agradables 7 respuestas en 5 minutos .. sólo 29 visitas, significa que 1/4 personas escribieron una respuesta :) –

+0

Pero esto definitivamente no es un idioma agnóstico. '\ r \ n' son secuencias comunes de escape en muchos lenguajes c y c, pero definitivamente no en todos los idiomas. – Oded

Respuesta

16

\r\n es una Estilo de Windows

\n es una POSIX Estilo

\r es una antigua pre-OS X Mac estilo, demoderna Mac utilizando POSIX estilo.


\r es un retorno carrige y \n es un avance de línea, en viejos ordenadores donde no tiene monitor, sólo tienen la impresora para salir programas resultan de usuario, si desea obtener una impresión de mirar fijamente de nuevo línea de izquierda, debe obtener \n para alimentación de línea, y \r para obtener retorno de carro a la posición más a la izquierda, esto es de la sintaxis de los ordenadores de edad guardado en este momento en la plataforma de Windows .

+0

Tenga en cuenta que '\ r' es solo" Mac Style "para Mac pre-OS X. Los Mac modernos usan el estilo POSIX, ya que en última instancia se basan en un derivado de BSD. –

+0

@Tyler McHenry: gracias por su revisión, ¡actualizado! ;-) – Svisstack

+1

CR + LF se usa comúnmente en muchos protocolos de red (como HTTP), independientemente del SO utilizado para transmitir los datos. '\ r' se correlaciona comúnmente con CR cada vez que el sistema objetivo usa ASCII o Unicode como su sistema de caracteres. (Si el sistema objetivo usa EBCDIC, entonces '\ r' puede no tener un mapeo.)' \ N' es más complicado, ya que depende del contexto. A menudo se asigna a un ALIMENTACIÓN DE LÍNEA ASCII/Unicode, pero no siempre es tan simple. Las respuestas a la pregunta "Posible duplicado" tienen detalles. –

1

'\ n' es el valor predeterminado en Unix, '\ r \ n' es el valor predeterminado en Windows.

2

\ n es una nueva línea solamente, \ r \ n es una nueva línea y un retorno de carro (es decir, mueve el cursor hacia la izquierda).

1

Los diferentes sistemas operativos manejan las líneas nuevas de una manera diferente. Aquí hay una breve lista de los más comunes: DOS y Windows

Esperan que una nueva línea sea la combinación de dos caracteres, llamados '\ r \ n' (o 13 seguidos por 10).

Unix (y por tanto Linux también)

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

Mac

Macs usan un solo '\ r'.

por lo que esto causa problemas cuando transfiere su aplicación de Windows a Mac cuando está utilizando la ruta de la carpeta y por igual.

0

es la diferencia entre los diferentes sistemas operativos, en Windows, el carácter de nueva línea es \r\n mientras que en Linux se acaba \n Mac OS X ha llegado a \r es realmente sólo una cuestión de lo que los diseñadores del sistema operativo hacen que sea

1

\ n significa nueva línea. Significa que el cursor debe ir a la siguiente línea.

\ r significa retorno de carro. Significa que el cursor debe volver al comienzo de la línea.

Los programas Unix y Unix generalmente solo necesitan una nueva línea (\ n).

Los programas de Windows y Windows generalmente necesitan ambos.

1

Esta es la forma nueva línea está representado en los sistemas operativos Windows (\ r \ n) y Linux (\ n)

En Unix \ r es un retorno de carro (CR) y el \ na salto de línea (LF) que juntos son el identificador de Windows new y los está reemplazando con un identificador de línea nueva de Unix.

En Windows, el \ r es también un CR, pero \ n es una combinación de CR y LF. Entonces, efectivamente está tratando de reemplazar CR + CR + LF con CR + LF. No tiene mucho sentido , ¿verdad?

Desde "perldoc perlop": Todos los sistemas usan el "" \ n "" virtual para representar un terminador de línea, llamado "nueva línea". No existe un carácter de nueva línea físico invariable. Es solo una ilusión que el sistema operativo, los controladores de dispositivo , las bibliotecas C y Perl conspiran para preservar. No todos los sistemas leen "" \ r "" como ASCII CR y "" \ n "" como ASCII LF. Por ejemplo, en a Mac, estos están invertidos, y en sistemas sin terminador de línea, impresión "" \ n "" puede no emitir datos reales. En general, use "" \ n "" cuando significan una "nueva línea" para su sistema, pero use el ASCII literal cuando necesita un carácter exacto. Por ejemplo, la mayoría de los protocolos de red esperan y prefieren un CR + LF ("" \ 015 \ 012 "" o "" \ cM \ cJ "") para terminadores de línea, y aunque a menudo aceptan solo "" \ 012 "" , rara vez toleran solo "" \ 015 "". Si adquiere el hábito de usar "" \ n "" para establecer una red, puede quemar algún día.

0

En C#, sólo se puede utilizar Environment.NewLine

+0

Irónicamente, aunque este es el uso preferido sobre "\ n" o "\ r \ n" (al menos en DOT NET), en realidad no responde a la pregunta original. – mickeyf

Cuestiones relacionadas