Discussion:
Problemas con paso de fichero a fichero
(demasiado antiguo para responder)
Principiante
2005-11-04 18:12:09 UTC
Permalink
Por favor alguien podria ayudarme y decirme por que no funciona este
codigo.
Lo compilo con DevC++4..9.9.1 corriendo en un XP
lo ejecuto en la ruta del fichero 'secreto', crea el fichero
'duplicado' sin ninguna informacion y el programa se cuelga :-?
Gracias
Un saludo
Principiante

/*Este codigo debe abrir un fichero de texto y pasar la informacion a
otro*/
#include <stdio.h>
int main ()
{
FILE *fichero, *fichero2;
char texto;

fichero=fopen ("secreto.txt", "r");
fichero2=fopen ("duplicado.txt", "w");
if (fichero==NULL || fichero2==NULL) /*comprobamos si existe y
creamos duplicado*/
{
printf ("No hay fichero o esta vacio\n");
exit (1);
}

texto=getc(fichero);
while (feof (fichero)==0)
{
putc (texto, fichero2);
printf ("%s", texto);
texto=getc(fichero);
}
if (fclose (fichero) !=0) /*comprobamos que se cierra bien*/
{
printf ("El fichero secreto no pudo cerrarse. Error\n");
}
if (fclose (fichero2) !=0)
printf ("el fichero duplicado no pudo cerrarse. Error\n");
}
Luis Angel Fdez. Fdez.
2005-11-04 19:04:40 UTC
Permalink
A las 18:12 del viernes 04 de noviembre,
Principiante <***@gmail.com>
hablando de Problemas con paso de fichero a fichero
en es.comp.lenguajes.c dijo...

Hola
Post by Principiante
/*Este codigo debe abrir un fichero de texto y pasar la informacion a
otro*/
#include <stdio.h>
int main ()
{
FILE *fichero, *fichero2;
char texto;
[...]
Post by Principiante
while (feof (fichero)==0)
{
putc (texto, fichero2);
printf ("%s", texto);
Creo que el fallo puede estar aquí. Tienes declarado texto como
un char sin embargo en el printf estás diciéndole que imprima
una cadena, así que supongo que empezará a leer en la dirección
de memoria que le indique texto hasta que encuentre un '\0'.
Post by Principiante
texto=getc(fichero);
}
[...]

Espero no estar equivocado y que te sirva de ayuda.

Ta llueu.

- --
Slackware 10.2.0 Kernel 2.6.14 i686 (GCC) 3.3.6
AMD Athlon(tm) 64 Processor 3200+ ( 2200.523MHz )
Linux User #99754 Jabber: ***@jabber.org
Hattrick: C.D. Arrancatapinos (488047) VI.759
Principiante
2005-11-04 19:15:51 UTC
Permalink
Gracias, era precisamente eso; estuve haciendo tantas pruebas para ver
por que no funcionaba que se me olvidó cambiar s por c, de hecho te
puedo asegurar que al leer el codigo lo lei como c, tan convencido
estaba :-D
Funciona perfectamente ahora

Loading...