Unix tiene \ n, Mac was \ r pero ahora es \ n y DOS/Win32 es \ r \ n. Al crear un archivo de texto con C, ¿cómo garantizar que el (los) personaje (s) de final de línea sea apropiado para el sistema operativo se usa?En C, ¿cómo escribir el carácter de final de línea apropiado para el sistema operativo?
Respuesta
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.
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.
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.
+1 por mencionar la distinción entre archivos de texto y binarios (¡y por convencerme!) –
- 1. Detectar el sistema operativo
- 2. ¿El mejor sistema operativo educativo para estudiar?
- 3. Cómo determinar el sistema operativo
- 4. C# archivo de texto - cómo escribir el carácter EOF
- 5. ¿Cómo detectar el sistema operativo en ejecución?
- 6. Compilación condicional en C++ basada en el sistema operativo
- 7. Cómo determinar el sistema operativo en elisp?
- 8. Libros de Android en el sistema operativo
- 9. '^ M' carácter al final de las líneas
- 10. ¿Algún sistema operativo implementa el almacenamiento en búfer para malloc()?
- 11. ¿Es posible escribir un sistema operativo para un teléfono móvil?
- 12. El sistema operativo está eliminando el hilo
- 13. Determine el sistema operativo en .vimrc
- 14. Pilas NFC en el sistema operativo Android
- 15. Determine el sistema operativo durante el tiempo de ejecución
- 16. de lectura hasta el final de una línea en C++
- 17. ¿Cómo agregar el carácter de nueva línea en app.config?
- 18. Mover al carácter de fin de línea en Vi, pasar el último carácter en la línea
- 19. ¿Estoy codificando para un sistema operativo o el procesador?
- 20. Vi/vim - eliminar de la línea final, incluido el carácter final
- 21. Cómo generar una ruta independiente de sistema operativo en C++
- 22. C biblioteca de sistema operativo independiente
- 23. ¿Cómo se implementa sleep en el nivel del sistema operativo?
- 24. ¿Cómo escribir el carácter de nueva línea nativa en un descriptor de archivo en Python?
- 25. ¿Cómo obtener el separador de línea del sistema operativo actual fácilmente en Scala?
- 26. Usar el Mapa de teclas predeterminado del sistema operativo nativo
- 27. Diferencias fundamentales entre el sistema operativo Linux y el sistema operativo móvil (Android)
- 28. ¿Cómo iniciar el script de PowerShell desde la línea de comando del sistema operativo?
- 29. Desarrollo de un sistema operativo
- 30. ¿Se puede escribir un sistema operativo completo sin usar ni siquiera una línea de código C/C++?
SI el archivo se abre en modo de texto –
Sí, por supuesto. Debería haberlo incluido desde el principio. Actualizado ahora – hlovdal
El asker habló explícitamente sobre los archivos de texto. – Joey