#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(int argc,char*argv[])
{
const int MAX=100;
FILE*f;
FILE*fr;
char riga[MAX+1];
char ricetta[21];
char ingrediente[21];
char ingr_frigo[21];
float quantita, quantita_frigo;
char rigafr[MAX+1];
int impossibile=0, contr=0,ce=0;
if(argc!=3)
{
printf(“numero di parametri errato\n”);
exit(1);
}
f=fopen(“germana.txt”,”r”);
if(f==NULL)
{
printf(“impossibile aprire il file\n”);
exit(1);
}
while(fgets(riga,MAX,f)!=NULL)
{
sscanf(riga,”%s %s %f”, &ricetta, &ingrediente, &quantita);
if(strcmp(ricetta,argv[2])==0)
{
ce=0;
contr++;
fr=fopen(argv[1],”r”);
if(fr==NULL)
{
printf(“impossibile aprire il frigo\n”);
exit(1);
}
while(fgets(rigafr, MAX, fr)!=NULL)
{
sscanf(rigafr,”%s %f”, &ingr_frigo, &quantita_frigo);
if(strcmp(ingrediente,ingr_frigo)==0 && quantita<=quantita_frigo)
{
printf(“- %s: OK\n”, ingrediente);
ce=1;
}
else if(strcmp(ingrediente,ingr_frigo)==0 && quantita>quantita_frigo)
{
printf(“- %s: richiesto %.1f, disponibile %.1f\n”, ingrediente, quantita, quantita_frigo);
impossibile=1;
ce=1;
}
}
if(ce==0)
{
printf(“- %s: non presente nel frigo\n”, ingrediente);
impossibile=1;
}
fclose(fr);
}
}
if(contr==0)
{
printf(“ricetta non presente nel ricettario\n”);
}
if(impossibile==0 && contr!=0)
{
printf(“ricetta ‘%s’ OK”, argv[2]);
}
else if(impossibile==1 && contr!=0 )
{
printf(“ricetta ‘%s’ impossibile”, argv[2]);
}
exit(0);
}
