331

¿Cuál es el significado de los siguientes caracteres de control:¿Qué son el retorno de carro, el salto de línea y el avance de formulario?

  1. Retorno de carro

  2. Salto de línea

  3. Avance de

+6

¿Qué significa "retorno de carro"? No veo ningún "carro" "regresando" en mi computadora portátil. : s –

+2

@JeanHominal el carro básicamente significa el cursor (o el puntero en máquinas de escribir antiguas), y el retorno significa volver al principio de esa línea. – SOFe

Respuesta

21

un vistazo a Wikipedia:

Los sistemas basados ​​en ASCII o un juego de caracteres compatible utilizan LF (avance de línea, '\ n', 0x0A, 10 en decimal) o CR (retorno de carro, '\ r', 0x0D, 13 en decimal) individualmente o CR seguido de LF (CR + LF, 0x0D 0x0A). Estos caracteres se basan en los comandos de la impresora: el avance de línea indicaba que una línea de papel salía de la impresora, y un retorno de carro indicaba que el carro de la impresora debería volver al comienzo de la línea actual.

2

"\ n" es el carácter de salto de línea. Significa terminar la línea actual e ir a una nueva línea para cualquiera que la esté leyendo.

12

En terminales de papel viejo, avanzar a la siguiente línea implicaba dos acciones: mover el cabezal de impresión al principio del rango de exploración horizontal (retorno de carro) y avanzar el rollo de papel impreso (avance de línea) .

Dado que ya no usamos terminales de impresora de papel, esas acciones ya no son relevantes, pero los caracteres utilizados para señalarlas se han quedado en diversas encarnaciones.

+0

En realidad, el "retorno del carro" no mueve el cabezal de impresión hacia la izquierda, sino que mueve el carro que sujeta la placa hacia la derecha. Solía ​​haber una palanca larga que fue accionada por la mano izquierda para hacer esto. Ver http://en.wikipedia.org/wiki/Typewriter –

+2

@MarkLakata Verdadero para máquinas de escribir, pero esta respuesta se trata de terminales de impresión antiguos. Por ejemplo, el DEC LA36 (http://www.columbia.edu/cu/computinghistory/la36.html). –

0

Esos son caracteres no impresos, relacionados con el concepto de "nueva línea". \ n es avance de línea. es el retorno de carro En diferentes plataformas tienen diferentes significados, en relación con una nueva línea válida. En Windows, una nueva línea es \ r \ n. En Linux, \ n. En mac, \ r.

En la práctica, los pones en cualquier cuerda, y tendrá efecto en la impresión de la cuerda.

463

Retorno de carro significa volver al comienzo de la línea actual sin avanzar hacia abajo. El nombre proviene del carro de una impresora, ya que los monitores eran raros cuando se acuñó el nombre. Esto se escapa comúnmente como "\ r", abreviado CR, y tiene valor ASCII 13 o 0x0D.

Linefeed significa avanzar hacia abajo a la siguiente línea; sin embargo, ha sido reutilizado y renombrado. Utilizado como "nueva línea", termina líneas (comúnmente confundido con separando líneas). Esto se escapa comúnmente como "\ n", abreviado LF o NL, y tiene valor ASCII 10 o 0x0A. CRLF (pero no CRNL) se usa para el par "\ r \ n".

La alimentación del formulario significa avanzar hacia abajo a la siguiente "página". Se usaba comúnmente como separadores de página, pero ahora también se usa como separadores de sección. (Se usa poco en el código fuente para dividir funciones lógicamente independientes o grupos de funciones.) Los editores de texto pueden usar este carácter cuando "inserta un salto de página". Esto se escapa comúnmente como "\ f", abreviado FF, y tiene valor ASCII 12 o 0x0C.

Como caracteres de control, se pueden interpretar de varias maneras.

La diferencia más común (y probablemente la única de la que vale la pena preocuparse) es que las líneas terminan con CRLF en Windows, NL en Unix-likes y CR en Mac antiguas (la situación ha cambiado con OS X para ser como Unix) . Tenga en cuenta que el cambio en el significado de LF a NL, para el mismo personaje exacto, da las diferencias entre Windows y Unix. (Windows es, por supuesto, más nuevo que Unix, por lo que no adoptó este cambio semántico. No conozco la historia de los Mac que utilizan CR.) Muchos editores de texto pueden leer archivos en cualquiera de estos tres formatos y convertir entre ellos , pero no todas las utilidades pueden

El feed de formulario es un poco más interesante (aunque se usa menos comúnmente), y con la definición habitual de separador de páginas, solo puede venir entre líneas (por ejemplo, después de la secuencia de nueva línea de NL, CRLF o CR) o al comienzo o al final del archivo.

+8

Puedo confirmar que [OS X] (http://en.wikipedia.org/wiki/OS_X) utiliza NL como terminador de línea, al igual que Unix (porque OS X * es * un Unix). CR se usó en [Mac OS 9] (http://en.wikipedia.org/wiki/Mac_OS_9) y más adelante. –

+1

El chasquido FF puede parecer extraño hoy en día (junto con el chasquido de campana "CTRL-G") pero tenía más relevancia cuando las pantallas de video eran mucho menos comunes y las terminales de copia impresa se usaban como pantallas de datos. –

+0

¿No es ese el control de alimentación '\ x0c'? – Tjorriemorrie

25

\f se utiliza para el salto de página. No puede ver ningún efecto en la consola. Pero cuando usas este carácter constante en tu archivo, entonces puedes ver la diferencia.

Otro ejemplo es que si puede redirigir su salida a un archivo, entonces no tiene que escribir un archivo o utilizar el manejo de archivos.

Por ejemplo:

escribir este código en C++

void main()  
{ 
    clrscr(); 
    cout<<"helloooooo" ; 

    cout<<"\f"; 
    cout<<"hiiiii" ; 

} 

y al compilar esto se genera un archivo EXE (por ej abc.exe.)

continuación, se pueden redirigir la salida a un presentar el uso de este:

abc > xyz.doc

continuación, abra el archivo xyz.doc se puede ver el salto de página real entre hellooo y hiiii ....

+9

No tenía idea de que sería un '.doc' válido. – NReilingh

+1

¡No lo es! Word también puede leer archivos de texto reales. – llouk

3

retorno de carro y avance de línea son también referencias a las máquinas de escribir, en el que el con un pequeño empuje en el mango de el lado izquierdo del carro (el lugar donde va el papel), el papel giraría una pequeña cantidad alrededor del cilindro, avanzando el documento una línea. Si había terminado de escribir una línea y deseaba continuar con la siguiente, presionó con fuerza, tanto avanzando una línea como deslizando el carro completamente hacia la derecha, y luego volviendo a escribir de izquierda a derecha mientras el carro viajaba con cada pulsación de tecla . Huelga decir que el ajuste de palabras fue la configuración predeterminada para todo el procesamiento de textos de la época. P: D

10

Considere una impresora de impacto IBM 1403. CR movió el cabezal de impresión al inicio de la línea, pero NO avanzó el papel. Esto permitió la "sobreimpresión", colocando múltiples líneas de salida en una línea. Las cosas como el subrayado se lograron de esta manera, al igual que BOLD print. LF avanzó el papel una línea. Si no había CR, la siguiente línea se imprimiría como un paso escalonado porque LF no movió el cabezal de impresión. FF avanzó el papel a la siguiente página. Por lo general, también movió el cabezal de impresión al comienzo de la primera línea en la página nueva, pero es posible que necesite CR para eso. Para estar seguros, la mayoría de los programadores codificaron CRFF en lugar de CRLF al final de la última línea de una página porque un CR adicional creado por FF no importaría.

15

Aparte de la información anterior, todavía hay un historial interesante de LF (\ n) y CR (\ r). [Autor original: 阮一峰 Fuente: http://www.ruanyifeng.com/blog/2006/04/post_213.html] Antes de que apareciera la computadora, había un tipo de teleimpresora llamada Teletipo Modelo 33. Puede imprimir 10 caracteres por segundo. Pero hay un problema con esto, después de terminar de imprimir cada línea, tomará 0.2 segundos para pasar a la siguiente línea, que es el momento de imprimir 2 caracteres. Si se transfieren nuevos caracteres durante estos 0.2 segundos, este nuevo carácter se perderá.

Así que los científicos encontraron una manera de resolver este problema, agregan dos caracteres finales después de cada línea, uno es 'Retorno de carro', que es decirle a la impresora que coloque el cabezal de impresión hacia la izquierda .; el otro es 'Line feed', le dice a la impresora que mueva el papel hacia arriba 1 línea.

Más tarde, la computadora se hizo popular, estos dos conceptos se usan en las computadoras. En ese momento, el dispositivo de almacenamiento era muy caro, por lo que algunos científicos dijeron que era caro agregar dos caracteres al final de cada línea, uno es suficiente, por lo que hay algunos argumentos sobre cuál usar.

En UNIX/Mac y Linux, '\ n' se coloca al final de cada línea, en Windows, '\ r \ n' se coloca al final de cada línea. La consecuencia de este uso es que los archivos en UNIX/Mac se mostrarán en una línea si se abren en Windows. Mientras que el archivo en Windows tendrá una^M al final de cada línea si se abre en UNIX o Mac.

+1

Con el lanzamiento de OSX (basado en BSD Unix), la Mac cambió a '\ n' - terminaciones de línea Unix. –

+0

"Los archivos en UNIX/Mac se mostrarán en una línea si se abren en Windows". 'WRITE.EXE' (también conocido como Wordpad) puede mostrarlos muy bien. – thecarpy

69

\r es el retorno de carro y se mueve el cursor hacia atrás como si voy a hacer-

printf("stackoverflow\rnine") 
ninekoverflow 

significa que se ha desplazado el cursor hasta el principio de "stackoverflow" y sobrescribe la puesta en marcha de cuatro caracteres, ya que "nueve" se cuatro caracteres de largo.

\n es carácter de nueva línea que cambia la línea y se lleva el cursor al comienzo de una nueva línea de como-

printf("stackoverflow\nnine") 
stackoverflow 
nine 

\f es la forma de alimentación, su uso se ha vuelto obsoleta pero se utiliza para dar muesca como

printf("stackoverflow\fnine") 
stackoverflow 
      nine 

si voy a escribir como-

printf("stackoverflow\fnine\fgreat") 
stackoverflow 
      nine 
       great 
+0

¡Pero este ejemplo no funciona en idiomas de alto nivel! –

+0

@ ᔕI ᑎᗩ K it it Lo hace: al menos puede hacer lo mismo en shell de Linux utilizando la utilidad 'printf' de coreutils. O incluso usando 'echo -en' que es un bash incorporado. – Ruslan

+0

¿Cómo pasar todas las líneas como una sola línea en un archivo? –

5

Como suplemento,

1, Retorno de carro: Es una terminología impresora es decir, cambiar la ubicación de impresión al comienzo de actual línea. En el mundo de la informática, significa volver al principio de la línea actual en la mayoría de los casos, pero representa una nueva línea en raras ocasiones.

2, Alimentación de línea: Es una terminología de impresora que significa avanzar el papel una línea. Por lo tanto, el retorno del carro y el avance de línea se usan juntos para comenzar a imprimir al comienzo de una nueva línea. En el mundo de la informática, generalmente tiene el mismo significado que la nueva línea.

3, Alimentación de formulario: Es una terminología de impresora, me gusta la explicación en this thread.

Si estaba programando para una impresora 1980 de estilo, sería expulsar el papel y empezar una nueva página. Es casi seguro que nunca necesitará .

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

es casi obsoleto y se puede hacer referencia a Escape sequence \f - form feed - what exactly is it? para una explicación detallada.

Nota, podemos usar CR o LF o CRLF para representar la nueva línea en algunas plataformas, pero la nueva línea no puede mantenerse en otras plataformas. Consulte wiki Newline para más detalles.

LF: Multics, Unix y sistemas tipo Unix (Linux, OS X, FreeBSD, AIX, Xenix, etc.), BeOS, Amiga, RISC OS, y otros

CR: Commodore 8 bits, máquinas Acorn BBC, ZX Spectrum, TRS-80, de Apple II familia, Oberon, el Mac OS clásico hasta la versión 9, MIT Lisp máquina y OS-9

RS: implementación QNX pre-POSIX

0x9B: máquinas Atari de 8 bits que utilizan la variante ATASCII de ASCII (155 en decimal)

CR + LF: Microsoft Windows, DOS (MS-DOS, PC-DOS, etc.), DEC TOPS-10, RT-11, CP/M, MP/M, Atari TOS, OS/2, sistema operativo Symbian, Palm OS, Amstrad CPC, y la mayoría de los sistemas operativos anteriores que no son de Unix y de IBM

LF + CR: Acorn BBC y salida de texto en cola del sistema operativo RISC.

Cuestiones relacionadas