Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <float.h>
- #define FILEIN1 "d1.bin"
- #define FILEIN2 "d2.bin"
- #define FILEOUT "res.bin"
- typedef struct _dato
- {
- float t;
- float mis;
- }dato;
- typedef dato* pdato;
- typedef FILE* pfile;
- int main (void)
- {
- /**/ unsigned int cont=0,i;
- dato d1,d2;
- float soglia=FLT_MAX;
- pfile pf1,pf2,pf3;
- if((pf1=fopen(FILEIN1,"rb"))==NULL)
- {
- printf("Non sono riuscito ad aprire il file %s in lettura\n",FILEIN1);
- return EXIT_FAILURE;
- }
- if((pf2=fopen(FILEIN2,"rb"))==NULL)
- {
- printf("Non sono riuscito ad aprire il file %s in lettura\n",FILEIN2);
- return EXIT_FAILURE;
- }
- if((pf3=fopen(FILEOUT,"wb"))==NULL)
- {
- printf("Non sono riuscito ad aprire il file %s in scrittura\n",FILEOUT);
- return EXIT_FAILURE;
- }
- do
- {
- if((fread(&d1,sizeof(dato),1,pf1))!=1) goto fread_err;
- if((fread(&d2,sizeof(dato),1,pf2))!=1) goto fread_err;
- if(d1.t==0&&d2.t==0) /*if(d1.t==d2.t==0) E' SBAGLIATO*/
- {
- fwrite(&d1,sizeof(dato),1,pf3);
- /**/cont++;
- }
- else
- {
- printf("Letti:(t=%.2f,v=%.2f) e (t=%.2f,v=%.2f)-",d1.t,d1.mis,d2.t,d2.mis);
- if(d1.mis+d2.mis<1.5*soglia)
- {
- if(d1.t<=d2.t)
- {
- fwrite(&d1,sizeof(dato),1,pf3);
- fwrite(&d2,sizeof(dato),1,pf3);
- }
- else
- if(d1.t>d2.t)
- {
- fwrite(&d2,sizeof(dato),1,pf3);
- fwrite(&d1,sizeof(dato),1,pf3);
- printf("invertiti-");
- }
- soglia=d1.mis+d2.mis;
- /**/cont=cont+2;
- printf("Salvati sul file\n");
- }
- else
- {
- if(d1.t>d2.t)
- printf("invertiti-");
- printf("Scartati\n");
- }
- }
- }
- while (d1.t==d2.t==0);
- fclose(pf1);
- fclose(pf2);
- fclose(pf3);
- /**/
- if((pf3=fopen(FILEOUT,"rb"))==NULL)
- {
- printf("Non sono riuscito ad aprire il file %s in lettura\n",FILEOUT);
- return EXIT_FAILURE;
- }
- for(i=0;i<cont;i++)
- {
- if((fread(&d1,sizeof(dato),1,pf3))!=1) goto fread_err;
- printf("(t=%.2f,d=%.2f)\n",d1.t,d1.mis);
- }
- fclose(pf3);
- /**/
- return EXIT_SUCCESS;
- fread_err:
- printf("Si e' verificato un problema nella lettura del file\n");
- return EXIT_FAILURE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement