574 votos

Diferencia entre \n y \r ?

¿Cuál es la diferencia entre \n (nueva línea) y \r (retorno de carro)?

Editado para añadir: Todas las respuestas son bastante predecibles, pero me interesaría saber si hay alguna diferencia PRÁCTICA entre \n y \r. ¿Hay lugares en los que se deba utilizar uno sobre el otro?

789voto

Alex Martelli Puntos 330805

En términos de código ascii, es 3 -- ya que son 10 y 13 respectivamente;-).

Pero en serio, hay muchos:

  • en Unix y en todos los sistemas tipo Unix, \n es el código de fin de línea, \r no significa nada especial
  • como consecuencia, en C y en la mayoría de los lenguajes que de alguna manera lo copian (aunque sea remotamente), \n es la secuencia de escape estándar para el final de línea (traducida a/desde secuencias específicas del sistema operativo según sea necesario)
  • en sistemas Mac antiguos (anteriores a OS X), \r era el código de fin de línea en lugar de
  • en Windows (y en muchos sistemas operativos antiguos), el código de fin de línea es de 2 caracteres, \r\n En este orden
  • como consecuencia (sorprendente;-) (recordando a sistemas operativos mucho más antiguos que Windows), \r\n es la terminación de línea estándar para los formatos de texto en Internet
  • para "terminales" electromecánicos tipo teletipo, \r ordena al carro que retroceda hacia la izquierda hasta llegar al tope izquierdo (una operación lenta), \n ordena al rodillo que enrolle una línea (una operación mucho más rápida) -- esa es la razón por la que siempre tiene \r antes de \n para que el rodillo pueda moverse mientras el carro sigue avanzando hacia la izquierda.)
  • para terminales en modo carácter (típicamente emulando a los de impresión más antiguos como el anterior), en modo crudo, \r y \n actúan de forma similar (excepto ambos en lo que respecta al cursor, ya que hay es sin carro ni rodillo;-)

En la práctica, en el contexto moderno de la escritura en un archivo de texto, siempre se debe utilizar \n (el tiempo de ejecución subyacente lo traducirá si estás en un sistema operativo raro, por ejemplo, Windows;-). La única razón para utilizar \r es si estás escribiendo en un terminal de caracteres (o más bien en una "ventana de consola" que lo emule) y quieres que la siguiente línea que escribas sobrescriba la última que acabas de escribir (a veces se utiliza para efectos de "animación ascii" tontos de, por ejemplo, barras de progreso) -- aunque esto se está volviendo bastante obsoleto en un mundo de GUIs;-).

123voto

tster Puntos 9948

históricamente un \n se utilizó para mover el carro hacia abajo, mientras que el \r se utilizó para mover el carro hacia la izquierda de la página.

33voto

pavium Puntos 7845

Dos personajes diferentes.

\n se utiliza como terminador de línea en los archivos de texto Unix

\r se utiliza como terminador de línea en los archivos de texto de Mac

\r\n (es decir, ambos) se utilizan para terminar líneas en archivos de texto de Windows y DOS.

12voto

a432511 Puntos 596

Dos caracteres diferentes para diferentes sistemas operativos. También esto juega un papel en los datos transmitidos a través de TCP/IP que requiere el uso de \r\n

\n Unix

\r Mac

\r\n Windows y DOS.

2voto

YOU Puntos 44812

\r es el código char 13 y \n es el código char 10

Uso de Windows \r\n , uso de linux \n y uso de mac \r hasta donde yo sé.

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