codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <malloc.h>
int main()
{
int risultato_confronto; //variabile per risultato del confronto delle date
int i=0, j=0, k=0; //contatori per scorrere Dati1.txt, Dati2.txt e Dati.txt
int sizemax;
char nome1[20];
char nome2[20];
char nome3[20];
char nome4[20];
struct tipo_dato //creo struttura per immagazzinare i dati
{
double temp;
char data[10];
};
struct tipo_dato centrale1[365]; //dichiaro struttura centrale1 per Dati1.txt
struct tipo_dato centrale2[365]; //dichiaro struttura centrale2 per Dati2.txt
FILE* f= NULL; //puntatore al primo file
FILE* f2 = NULL; //puntatore al secondo file
FILE* f3 = NULL; //puntatore al terzo file
f=fopen("Dati1.txt","r");
f2=fopen("Dati2.txt","r");
if (f==NULL || f2==NULL)
{
printf ("Errore nell'apertura dei file di origine.");
}
else
{
fscanf(f,"%s %s", nome1, nome2);
fscanf(f2,"%s %s", nome3, nome4);
//printf("%s %s\n", int2.nome1, int2.nome2);
//fscanf(f,"%lf %s", ¢rale1.temp, centrale1.data);
//printf("%lf %s", centrale1.temp, centrale1.data);
while (!(feof(f)))
{
fscanf(f,"%lf %s", ¢rale1[i].temp, centrale1[i].data);
printf("temp1: %lf data1: %s\n", centrale1[i].temp, centrale1[i].data);
i++;
}
fclose(f);
while (!(feof(f2)))
{
fscanf(f2,"%lf %s", ¢rale2[j].temp, centrale2[j].data);
j++;
}
fclose(f2);
sizemax=i+j;
f=fopen("Dati1.txt","r");
f2=fopen("Dati2.txt","r");
f3=fopen("Dati.txt","w");
printf ("righe di dati1: %d\n", i);
printf ("righe di dati2: %d\n", j);
i=0;
j=0;
for (k=0;k<=(sizemax);k++)
{
risultato_confronto=strcmp(centrale1[i].data,centrale2[j].data);
if (risultato_confronto==0)
{
if (centrale1[i].temp>=centrale2[j].temp)
{
printf("i: %d j: %d %d %lf %s\n", i, j, k, centrale2[j].temp, centrale2[j].data);
fprintf(f3,"path1-> i: %d j: %d k: %d %lf %s %s %s scarto: %lf %s\n",i, j, k, centrale2[j].temp, centrale2[j].data, nome3, nome4, centrale1[i].temp, centrale1[i].data);
j++;
}
else
{
printf("i: %d j: %d %d %lf %s\n", i, j, k, centrale1[i].temp, centrale1[i].data);
fprintf(f3,"path2-> i: %d j: %d k: %d %lf %s %s %s scarto: %lf %s\n",i ,j, k, centrale1[i].temp, centrale1[i].data, nome1, nome2, centrale2[j].temp, centrale2[j].data);
i++;
}
}
else
{
if (risultato_confronto>0)
{
printf("i: %d j: %d %d %lf %s\n ", i, j, k, centrale2[j].temp, centrale2[j].data);
fprintf(f3,"path3-> i: %d j: %d k: %d %lf %s %s %s scarto: %lf %s\n", i, j, k, centrale2[j].temp, centrale2[j].data, nome3, nome4, centrale1[i].temp, centrale1[i].data);
j++;
}
else
{
printf("i: %d j: %d %d %lf %s\n", i, j, k, centrale1[i].temp, centrale1[i].data);
fprintf(f3,"path4-> i: %d j: %d k: %d %lf %s %s %s scarto: %lf %s\n", i, j, k, centrale1[i].temp, centrale1[i].data, nome1, nome2, centrale2[j].temp, centrale2[j].data);
i++;
}
}
}
fclose(f2);
fclose(f);
fclose(f3);
}
return 0;
}