2009-04-21 32 views

Respuesta

11
fprintf(your_file, "\n"); 

Esto se convertirá en un EOL apropiada por la biblioteca stdio en su sistema operativo siempre y cuando se abrió el archivo en modo texto. En modo binario, no hay conversión.

+1

SI el archivo se abre en modo de texto –

+0

Sí, por supuesto. Debería haberlo incluido desde el principio. Actualizado ahora – hlovdal

+0

El asker habló explícitamente sobre los archivos de texto. – Joey

12

De Wikipedia:

Al escribir un archivo en modo texto, '\ n' se traduce de forma transparente a la secuencia de nueva línea nativa utilizado por el sistema , que puede ser superior a un carácter. (Tenga en cuenta que se permite que una aplicación C no almacenar caracteres de nueva línea en los archivos. Para ejemplo, las líneas de un archivo de texto podrían almacenarse como filas de una tabla de SQL o como registros de longitud fija.) Cuando lectura en modo texto, la secuencia de nueva línea nativa se traduce de nuevo a '\ n'. En el modo binario, el segundo modo de E/S admitido por la biblioteca C, no se realiza la traducción , y la representación interna de cualquier secuencia de escape se envía directamente.

8

Al abrir un archivo en modo texto (PASS "w" para fopen en lugar de "wb") cualquier carácter de nueva línea escritos en el archivo se convertirán automáticamente a la secuencia de nueva línea adecuada para el sistema. Las secuencias de Newline se traducirán a los caracteres de nueva línea cuando lea el archivo.

Es por esto que es importante distinguir entre el modo de texto y el modo binario; si escribe en modo binario, C no alterará los bytes que escribe en un archivo.

+0

+1 por mencionar la distinción entre archivos de texto y binarios (¡y por convencerme!) –

Cuestiones relacionadas