Página 1 de 1

Error copiando ficheros

Publicado: 21 Jun 2014, 23:51
por Baal_30
Buenas, y disculpas por mi pesadez e ignorancia, pero bueno, así es como se aprende :/

Haciendo un ejercicio resuelto, escribo el código, y me da error, cuando lo compilo, me sale por pantalla el printf que dice : Error. La instrucción es: fichero_origen fichero_destino.

No se porque me sale eso. Es más, estoy leyendo e intentando comprender el código, y no le encuentro ni pies ni cabeza, no lo entiendo para nada :/
// Copia de un fichero a otro con otro nombre

#include <stdio.h>

main(argc,argv)
int argc;
char *argv[];
{
	FILE *origen, *destino;
	char car, aux1, aux2;
	int i=0, igu=1;
	if(argc!=3){
		printf("Error. La instruccion es:\ncopia fichero_origen fichero_destino\n");
		return;
	}
	do{
		aux1=*(argv[1]+i);
		aux2=*(argv[2]+i);
		if(aux1 != aux2){
			igu=0;
			break;
		}
		i++;
	}while(aux1 != '\0' || aux2 != '\0');
	if(igu==1){
		printf("El fichero destino es el mismo que el fichero origen\n");
		return;
	}
	origen=fopen(argv[1],"r");
	destino=fopen(argv[2],"w");
	if(origen==NULL || destino==NULL){
		printf("El fichero de origen no existe o no hay espacio en el disco\n");
		return;
	}
	while((car=getc(origen)) != EOF) putc(car,destino);
	fclose(origen);
	fclose(destino);
}
Gracias de antemano :)

Re: Error copiando ficheros

Publicado: 22 Jun 2014, 00:12
por Blau
Este programa va con argumentos.

Código: Seleccionar todo

if(argc!=3){

Re: Error copiando ficheros

Publicado: 22 Jun 2014, 00:14
por Baal_30
¿Y como hago para que argc sea == 3? ¿No todos van así?

Re: Error copiando ficheros

Publicado: 22 Jun 2014, 01:02
por Wal999
gracias bro!

Re: Error copiando ficheros

Publicado: 22 Jun 2014, 18:58
por Baal_30
Wal999 escribió:gracias bro!
¿? xD

Re: Error copiando ficheros

Publicado: 22 Jun 2014, 19:21
por Pink
aunque no es lo que pides podrias usar CopyFile.

Saludos

Re: Error copiando ficheros

Publicado: 22 Jun 2014, 21:06
por Baal_30
Pink escribió:aunque no es lo que pides podrias usar CopyFile.

Saludos
¿Sería más sencillo, no?

Pero lo que quiero es saber porque no me funciona ese código y como solucionarlo :/