¿El retorno de carro de Windows \ r \ n consta de dos caracteres o un carácter?

¿El retorno de carro de Windows es \r\n mientras está \n en Unix, se trata \r\n como dos caracteres?

Estos son dos personajes:

  • es el retorno de carro;
  • \n es el avance de línea.

Dos caracteres combinados representan una nueva línea en Windows. Mientras que en Linux, \n representa una nueva línea. Mueve el cursor al inicio de una nueva línea en Linux. En Windows, el cursor permanecerá en la misma columna en la consola pero en la línea siguiente.

en Linux tiene el mismo efecto que en Windows: mueve el cursor al inicio de la línea. Es posible imprimir información diferente en la misma línea donde se usa \r lugar de \n .

En realidad, \r is 0x0D (^M) and \n is 0x0A (^J) , pero ….. en Windows:

 \n will write 0x0D 0x0A 

en Unix:

 \r will write 0x0D \n will write 0x0A 

Depende de la configuración. \r\n tiene dos bytes de ancho (en ASCII, UTF-8, etc.), pero las bibliotecas de E / S tales como la biblioteca stdio y otras, cuando funcionan en modo texto, pueden traducir entre \n y \r\n cuasi transparentemente.

Es decir, en una plataforma Windows, un progtwig en C que lee una secuencia de texto en modo txt_in con

 while ((c = getc(txt_in)) != EOF) printf("%02x\n", c); 

no informará el código ASCII para \r . Por el contrario, putc('\n', txt_out) escribirá \r\n en realidad en la secuencia de texto en modo txt_out .

Windows no distingue entre \r\n y cualquier otro dos caracteres. Sin embargo, hay una situación en la que se trata como un carácter: si utiliza el tiempo de ejecución C y abre un archivo como texto, \r\n en el archivo se leerá como \n , y \n se escribirá en el archivo como \r\n .

Sí, son dos caracteres: retorno de carro ‘\ r’ seguido de salto de línea ‘\ n’.

Realicé algunas pruebas (nada sofisticado) con Notepad ++ y Sublime Text 2 en Windows, y resulta que \r \n son de hecho 2 caracteres distintos, pero …

Diferentes editores de texto pueden insertar o no insertar \r cuando se presiona la tecla Retorno .

Pruebe lo siguiente en su editor de texto:

 1 2 3 4 5 

Luego presione Ctrl + F , habilite expresiones regulares y busque \r . Dependiendo de su editor de texto y su configuración, puede ‘golpear’ o ‘no golpear’ a un personaje al final de cada línea. Si el texto anterior está copiado y pegado desde otro editor, el comportamiento también puede diferir …

Algunos editores de texto permiten personalizaciones en su configuración, donde puede especificar si prefiere \r\n o unix-style \n para insertar cuando presiona Retorno . Además de eso, es posible que te permitan elegir aplicar un estilo consistente eliminando o insertando el carácter \r antes de guardar un archivo.