Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //programmino per generare un file binario con dei dati numerici: per testare la soluzione del compito del professore russo di giorno 1 febbraio 2017
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- #define NOMEFILE "numeribinari.bin"
- #define STRLEN 5
- typedef FILE* pfile;
- typedef float tipo1;
- typedef double tipo2;
- int main(void)
- {pfile pbin;//per puntare al file binario
- tipo1 numeri_tipo1[]={1,3,4,5,6},numeri_tipo1_letti[STRLEN];
- tipo2 numeri_tipo2[]={2,4,5,4,2},numeri_tipo2_letti[STRLEN];
- int n=STRLEN,n_letto,i;
- if((pbin=fopen(NOMEFILE,"wb"))==NULL) return EXIT_FAILURE;
- //adesso scrivo nel file binario dei numeri che ho deciso sopra io
- fwrite(&n,sizeof(int),1,pbin); //numero di numeri dei vari tipi
- fwrite(numeri_tipo1,sizeof(tipo1),STRLEN,pbin); //numeri primo tipo
- fwrite(numeri_tipo2,sizeof(tipo2),STRLEN,pbin); //numeri secondo tipo
- //il sizeof di un vettore ci da in numero di byte quindi potremmo capire il numero di elementi facendo il sizeof del vettore diviso il sizeof del tipo
- //adesso lo chiudo per riaprirlo in lettura
- fclose(pbin); //è importante chiuderlo oppure non potrebbe riaprilo perché linux impedisce di lavorare in parallelo con lo stesso file
- if((pbin=fopen(NOMEFILE,"rb"))==NULL) return EXIT_FAILURE;
- fread(&n_letto,sizeof(int),1,pbin); //numero di numeri dei vari tipi
- fread(numeri_tipo1_letti,sizeof(tipo1),STRLEN,pbin); //numeri primo tipo
- fread(numeri_tipo2_letti,sizeof(tipo2),STRLEN,pbin); //numeri secondo tipo
- //fread((vettore2),sizeof(float),5,pbin);
- fclose(pbin); //lo chiudo per liberare memoria
- //ora stampo su schermo il tutto per verificare che coincidano sia quelli del vettore iniziale sia quelli letti
- printf("%d %d\n",n,n_letto);
- for (i=0; i<STRLEN; i++)
- {
- printf(" %f ",numeri_tipo1[i]);
- printf("%f ",numeri_tipo2[i]);
- printf(" %f ",numeri_tipo1_letti[i]);
- printf("%f \n",numeri_tipo2_letti[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment