Programación General > C/C++
[Problema] Imprimir un salto de línea en un fichero
(1/1)
DanielFB93:
Buenas, escribo para consultar una pequeña duda que me ha surgido. Estoy haciendo un programa (sin una finalidad útil, tan solo para practicar), que imprime algo parecido a un diagrama de barras según los números que se encuentran en un fichero de texto. Por ejemplo, si en el fichero pone 3 4 5 imprime tres barras: una con tres astediscos, otra debajo con 4, etc.
El problema es que estos astediscos se imprimen sin saltos de línea aún escribiendo el orden siguiente:
--- Código: ---fprintf(f2,"\n");
--- Fin del código ---
De esta manera, al abrir el archivo veo una gran línea de astediscos. He buscado información pero no doy con la solución. Espero que puedan ayudarme.
Gracias de antemano.
DanielFB93:
Al final lo he "solucionado". El problema es el editor de texto (el archiconocido Bloc de notas) que no me ponía los saltos de línea. Ahora probé con Notepad++ y perfecto.
Gracias.
su -:
--- Citar ---Al final lo he "solucionado". El problema es el editor de texto (el archiconocido Bloc de notas) que no me ponía los saltos de línea. Ahora probé con Notepad++ y perfecto.
Gracias.
--- Fin de la cita ---
Entonces el problema esta en que aparentemente la libreria C que esta usando interpreta el fin de linea ("\n") como el caracter 0x0A (10 en decimal) pero el problema es que Windows usa 0x0D0A (13 y 10 o "\r\n" en UNIX) como fin de linea.
Eso lo podes comprobar con un editor hexadecimal, si es el caso seria mejor que usaras "\r\n" como fin de linea para seguir con el estandar de Windows
DanielFB93:
--- Cita de: su - en Lunes 23 de Abril de 2012, 22:26 ---
--- Citar ---Al final lo he "solucionado". El problema es el editor de texto (el archiconocido Bloc de notas) que no me ponía los saltos de línea. Ahora probé con Notepad++ y perfecto.
Gracias.
--- Fin de la cita ---
Entonces el problema esta en que aparentemente la libreria C que esta usando interpreta el fin de linea ("\n") como el caracter 0x0A (10 en decimal) pero el problema es que Windows usa 0x0D0A (13 y 10 o "\r\n" en UNIX) como fin de linea.
Eso lo podes comprobar con un editor hexadecimal, si es el caso seria mejor que usaras "\r\n" como fin de linea para seguir con el estandar de Windows
--- Fin de la cita ---
De acuerdo. ¡Muchísimas gracias por decirme el porqué de la situación!
Un saludo.
su -:
De nada :)
Navegación
Ir a la versión completa