PDA

Visualizza la versione completa : [c-c++] problema con file e EOF


suomi_viking_86
13-05-2005, 19:41
ciao, vorrei copiare un file jpg con il programma qui sotto, ma ho alcuni problemi, il ciclo while mi rileva EOF molto prima della fine effettiva del file, non posso fare una copia bit a bit?
[code]
#include <stdio.h>
#include <string.h>
void copy(char *file){
printf("inizio copia\n");
FILE *originale,*copia;
char buffer,filecopia[100]="copia di ";
originale=fopen(file,"r");
strcat(filecopia,file);
copia=fopen(filecopia,"w");
while( !feof(originale) ) // anche while(fscanf(originale,"%c",&buffer)!=EOF) non funziona
{
fscanf(originale,"%c",&buffer);
printf("%c",buffer);
fprintf(copia,"%c",buffer);
}
printf("copia terminata\n");
fclose(originale);
fclose(copia);
}



int main()
{
char file[100],copia[100]="copia di ";
printf("file da copiare:\n");

suomi_viking_86
13-05-2005, 20:09
utilizzando la modalitÓ di lettura r+b e di scrittura w+b, il problema si risolve qualcuno mi sa dire la teoria che c'Ŕ sotto?

unomichisiada
13-05-2005, 23:58
Originariamente inviato da suomi_viking_86
utilizzando la modalitÓ di lettura r+b e di scrittura w+b, il problema si risolve qualcuno mi sa dire la teoria che c'Ŕ sotto?
Beh una jpeg Ŕ un file binario e non un file testuale Ŕ chiaro che la modalitÓ di lettura e scrittura deve essere binaria come appunto indicano le b nel parametro "mode". Durante la lettura in modo oriantato a caratteri probabilmente alcune sequenze di byte casuali nella jpeg vengono riconosciute come un EOF e la lettura si interrompe

Loading