PDA

View Full Version : Copy file


Zandor
02-10-2005, 17:14
Ragazzi sto facendo un banale programma che copia un file in un'altra cartella.
Il programmač in C.

Il programma in se funziona cioč fa la copia perň alla fine del file mi mette l'EOF che nel file origine non vedo.

#include<stdio.h>
void main(void)
{
FILE *f;
FILE *f1;

if(( f=fopen("C:/ntldr","rb"))== NULL){
printf("\n\nnon posso aprire il file Bootfont.bin in lettura\n\n");
}

if ((f1=fopen("C:/ss/ntldr","wb"))==NULL) {
printf("\n non posso aprire il file \n");}

while(!feof(f)){ /* Finche' NON siamo alla fine del file...*/

fputc(fgetc(f), f1); /* Copia 1 char alla volta byte a byte*/
}

printf ("\nCOPIA COMPLETATA CORRETTAMENTE\n");
// system ("PAUSE");

fflush(f);
fclose(f);

fflush(f1);
fclose(f1);
}

cionci
02-10-2005, 17:59
int tmp;

tmp = fgetc(f);
if(!feof(f))
fputc(tmp, f1);

Qu@ker
02-10-2005, 18:02
while(!feof(f)){ /* Finche' NON siamo alla fine del file...*/

fputc(fgetc(f), f1); /* Copia 1 char alla volta byte a byte*/
}

Il problema e' qui: feof() non funziona come credi tu.
Sostituisci con, per esempio:

int i;
...
while ((i = fgetc(f)) != EOF)
fputc(i, f1);

cionci
02-10-2005, 18:04
Perchč usi fflush ? In questo caso non mi sembrano utili...