47 votos

¿Cuál es la diferencia entre un "salto de línea" y un "retorno de carro"?

Si hay dos palabras clave entonces deben tener sus propios significados. Así que quiero saber qué las hace diferentes y cuál es su código.

67voto

Tsunamis Puntos 540

Un salto de línea significa avanzar una línea hacia adelante. El código es \n.
Un retorno de carro significa mover el cursor al principio de la línea. El código es \r.

Los editores de Windows a menudo siguen utilizando la combinación de ambos como \r\n en archivos de texto. Unix usa principalmente solo el \n.

La separación proviene de la época de las máquinas de escribir, cuando se giraba la rueda para mover el papel y cambiar de línea y se movía el carro para reiniciar la escritura al principio de una línea. Esto implicaba dos pasos.

45voto

Monalisa Das Puntos 567

En un lenguaje muy simple, la tecla Enter es la combinación de retorno de carro y avance de línea.

El retorno de carro coloca el cursor al principio de la línea horizontalmente y el avance de línea desplaza el cursor a la siguiente línea verticalmente. La combinación de ambos te da el efecto de nueva línea (\n).

Referencia: https://en.wikipedia.org/wiki/Carriage_return#Computers

6voto

Burhan Khalid Puntos 50578

Ambos son primarios de los viejos tiempos de impresión.

El retorno de carro es de los días de las impresoras de teletipo/antiguas máquinas de escribir, donde literalmente el carro regresaba a la siguiente línea y empujaba el papel hacia arriba. Esto es lo que ahora llamamos \r.

El avance de línea LF señala el final de la línea, señala que la línea ha terminado - pero no mueve el cursor a la siguiente línea. En otras palabras, no "retorna" el cursor/cabezal de impresión a la siguiente línea.

Para más detalles variados, la poderosa Wikipedia al rescate.

0voto

Tanto "salto de línea" (0x0A o 10) como "retorno de carro" (0x0D o 13) son valores de un solo byte. Estos valores son el estándar aceptado para LF/CR. La mayoría de los lenguajes escribirán estos valores como "caracteres". Puedes encontrar estos valores en cualquier tabla ASCII estándar.

Por ejemplo, en C# una cadena como:

String str = "\n\r";

tiene una longitud de dos caracteres (ignorando el carácter nulo final oculto '0x00' requerido en los tipos de cadena). Sin embargo, podrías crear un array equivalente de tipo caracter como:

char[] c = new char[](){0x0A,0x0D}; // LF, CR

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