Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [c-c++] problema con file e EOF

    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");

  2. #2
    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?

  3. #3
    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
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.