Discussion:
no consigo asignar saltos de linea
(demasiado antiguo para responder)
newsf@nospam_grupalia.com
2004-04-07 15:08:30 UTC
Permalink
Hola grupo,
estoy imprimiendo el resultado de unas busquedas en un fichero, con
fprintf(). Cuando abro ese fichero me doy cuenta de que no me está
respetando el formato (ni los \n ni los \t, etc..). Despues de darle unas
cuantas vueltas, he visto que cuando lo abro con Notepad.exe (no reconoce el
formato) me lo pone todo en una misma línea, pero cuando lo abro con
Wordpad.exe me coloca todo como yo quiero.
Por otro lado, leo lineas de otro fichero y las añado en el fichero
anteriormente citado. De estas líneas que leo de otro fichero, abra con
Notepad o con Wordapad, si me respeta los saltos de línea.
¿Alguien sabe como le puedo meter saltos de línea a texto sin formato?

He cogido el programa que adjunto de una página de Internet, por si alguién
quiere hacer la prueba.

#include <stdio.h>
int main()
{
FILE *fichero;
char nombre[10] = "datos.dat";
unsigned int i;
fichero = fopen( nombre, "w" );
printf( "Fichero: %s (para escritura) -> ", nombre );
if( fichero )
printf( "creado (ABIERTO)\n" );
else
{
printf( "Error (NO ABIERTO)\n" );
return 1;
}
fprintf( fichero, "Esto es un ejemplo de usar la funcion
\'fprintf\'\n" );
fprintf( fichero, "\t 2\t 3\t 4\n" );
fprintf( fichero, "x\tx\tx\tx\n\n" );
for( i=1; i<=10; i++ )
fprintf( fichero, "%d\t%d\t%d\t%d\n", i, i*i, i*i*i, i*i*i*i );
fprintf( stdout, "Datos guardados en el fichero: %s\n", nombre );
if( !fclose(fichero) )
printf( "Fichero cerrado\n" );
else
{
printf( "Error: fichero NO CERRADO\n" );
return 1;
}
return 0;
}

Gracias,
Fernando
Bartomeu
2004-04-07 21:05:32 UTC
Permalink
Post by ***@nospam_grupalia.com
[...]
fichero = fopen( nombre, "w" );
[...]
Prueba a abrir el fichero explicitamente en modo texto o binario, a ver si
encuentras diferencias en los resultados:

fichero = fopen(nombre, "wt"); // modo texto

fichero = fopen(nombre, "wb"); // modo binario
sés
2004-04-08 06:55:43 UTC
Permalink
fprintf(). Cuando abro ese fichero me doy cuenta de que no me est=E1
respetando el formato (ni los \n ni los \t, etc..). Despues de darle u=
nas
cuantas vueltas, he visto que cuando lo abro con Notepad.exe (no =
reconoce el
Termina las l=EDneas con '\r\n'.
newsf@nospam_grupalia.com
2004-04-08 11:39:26 UTC
Permalink
Bingo, con esto funciona perfecto.

Gracia,
Fernando
Post by ***@nospam_grupalia.com
fprintf(). Cuando abro ese fichero me doy cuenta de que no me está
respetando el formato (ni los \n ni los \t, etc..). Despues de darle unas
cuantas vueltas, he visto que cuando lo abro con Notepad.exe (no reconoce el
Termina las líneas con '\r\n'.
Luis Angel Fdez. Fdez.
2004-04-08 08:03:59 UTC
Permalink
A las 15:08 del miércoles 07 de abril,
***@nospam_grupalia.com <***@grupalia.com>
hablando de no consigo asignar saltos de linea
en es.comp.lenguajes.c dijo...

Hola
Post by ***@nospam_grupalia.com
Hola grupo,
estoy imprimiendo el resultado de unas busquedas en un fichero, con
fprintf(). Cuando abro ese fichero me doy cuenta de que no me está
respetando el formato (ni los \n ni los \t, etc..). Despues de darle unas
cuantas vueltas, he visto que cuando lo abro con Notepad.exe (no reconoce el
formato) me lo pone todo en una misma línea, pero cuando lo abro con
Wordpad.exe me coloca todo como yo quiero.
Por otro lado, leo lineas de otro fichero y las añado en el fichero
anteriormente citado. De estas líneas que leo de otro fichero, abra con
Notepad o con Wordapad, si me respeta los saltos de línea.
¿Alguien sabe como le puedo meter saltos de línea a texto sin formato?
Si no me equivoco, en windows, un salto de línea se hace con
\n\r (no se si ese es el orden), a diferencia de UNIX en el que
un salto de línea se hace sólo con \n.

[...]
Post by ***@nospam_grupalia.com
fprintf( fichero, "\t 2\t 3\t 4\n" );
fprintf( fichero, "\t 2\t 3\t 4\n\r" );

[...]

Espero que te sirva.

Ta llueu.
--
Slackware 9.0.0 AMD Athlon(tm) Processor 598.853MHz
up 8 days, 18:48, 7 users, load average: 0.04, 0.10, 0.14
Kernel 2.4.25 (GCC) 3.3.3 Linux User #99754
Jabber: ***@jabber.com Homepage: http://muxin.no-ip.org/~koxo/
newsf@nospam_grupalia.com
2004-04-08 11:40:36 UTC
Permalink
Bingo, con esto funciona perfecto. Lo he probado con \r\n.

Gracia,
Fernando
Post by Luis Angel Fdez. Fdez.
A las 15:08 del miércoles 07 de abril,
hablando de no consigo asignar saltos de linea
en es.comp.lenguajes.c dijo...
Hola
Post by ***@nospam_grupalia.com
Hola grupo,
estoy imprimiendo el resultado de unas busquedas en un fichero, con
fprintf(). Cuando abro ese fichero me doy cuenta de que no me está
respetando el formato (ni los \n ni los \t, etc..). Despues de darle unas
cuantas vueltas, he visto que cuando lo abro con Notepad.exe (no reconoce el
formato) me lo pone todo en una misma línea, pero cuando lo abro con
Wordpad.exe me coloca todo como yo quiero.
Por otro lado, leo lineas de otro fichero y las añado en el fichero
anteriormente citado. De estas líneas que leo de otro fichero, abra con
Notepad o con Wordapad, si me respeta los saltos de línea.
¿Alguien sabe como le puedo meter saltos de línea a texto sin formato?
Si no me equivoco, en windows, un salto de línea se hace con
\n\r (no se si ese es el orden), a diferencia de UNIX en el que
un salto de línea se hace sólo con \n.
[...]
Post by ***@nospam_grupalia.com
fprintf( fichero, "\t 2\t 3\t 4\n" );
fprintf( fichero, "\t 2\t 3\t 4\n\r" );
[...]
Espero que te sirva.
Ta llueu.
--
Slackware 9.0.0 AMD Athlon(tm) Processor 598.853MHz
up 8 days, 18:48, 7 users, load average: 0.04, 0.10, 0.14
Kernel 2.4.25 (GCC) 3.3.3 Linux User #99754
Loading...