01: // lettura fino a fine file da  file binario
02: #include<stdio.h>
03: #include<stdlib.h>
04: 
05: int main(int argc, char **argv){
06: 
07:   unsigned short intlp, prefix;
08:   unsigned int number;
09: 
10:   FILE *f = fopen("numeri.dat", "rb");  // apro il file precedentemente generato
11:   if(!f)
12:   {
13:     perror("");
14:     exit(EXIT_FAILURE);
15:   }
16: 
17:   // la fread() ha la stessa sintassi della fwrite
18:   // restituisce il numero di "elementi" letti e quindi ci permette
19:   // di capire se la lettura sia andata o meno a buon fine
20:   // la uso quindi direttamente come condizione del ciclo
21:   // assumo che il file sia corretto ovvero che contenga sempre
22:   // una tripletta formata da due unsigned short e un unsigned int
23:   // di conseguenza controllo solo se riesce a leggere il primo unsigned short
24:   while( fread(&intlp,  sizeof(intlp),  1, f) == 1 ) 
25:   {
26:     fread(&prefix, sizeof(prefix), 1, f);
27:     fread(&number, sizeof(number), 1, f);
28: 
29:     printf("Numero letto %04u %u %u\n", intlp, prefix, number); 
30: 
31:   }
32: 
33:   fclose(f);
34: 
35:   return 0;
36: }
37: 
38: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it