Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - fread()impazzito o lo sarò io a breve...
Forum - C/C++ - fread()impazzito o lo sarò io a breve...

Avatar
Menin (Normal User)
Newbie


Messaggi: 10
Iscritto: 10/12/2008

Segnala al moderatore
Postato alle 0:05
Lunedì, 05/01/2009
visto che nessuno mi ha risposto all'altro post, ripongo il problema, semplificato...
cosa c'è di sbagliato in questo codice?
sembra come se l'EOF si sposti a suo piacimento..
prima mi fa vedere 25 file, poi 10, 17..e così via.. il puntatore al file si rifà ad un listato di record in cui sono memorizzati le info sui file,ho contrlollato il file e sembra a posto,anche perchè l'ho creato io con readdir() e fwrite() per salvare le info.. se qualcuno mi può dare una dritta.. grazie mille..

Codice sorgente - presumibilmente C++

  1. void leggi_lista_file(FILE *fPtr,int numero)
  2. {
  3.     int i;
  4.     struct File_in_directory file = {0,"","",0};
  5.    
  6.     printf("%-3s%-40s%-10s%-10s\n\n","N","NOME","TIPO","SIZE");    
  7.     rewind(fPtr);
  8.    while(!feof(fPtr)){
  9.         fread(&file,sizeof(struct File_in_directory),1,fPtr);
  10.    
  11.         if(file.number<10){
  12.             printf("%s%-3d%-40s%-10s%-10.2fKB\n","0",file.number,file.file_name,file.type,file.size);
  13.         }else{
  14.             printf("%-4d%-40s%-10s%-10.2fKB\n",file.number,file.file_name,file.type,file.size);
  15.             }    
  16.      }    
  17.     fclose(fPtr);

:D

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 20:24
Martedì, 06/01/2009
Ma scusa un secondo... come fai a chiamare fread e memorizzare i dati letti in una struttura? fread non va utilizzata così.

Dai un'occhiata: http://www.cplusplus.com/reference/clibrary/cstdio/fread.html


Il mio blog: https://piero.dev
PM Quote