Buongiorno a tutti,
Come da titolo vi chiedo un aiuto su un programma che devo sviluppare in linguaggio C. Il programma consiste nel leggere un file contenente N righe (numero righe ignote) dove ogni riga è formata da un codice prodotto, la quantità e il prezzo unitario, e il programma deve calcolare:
1) il valore totale dell'ipotetico magazzino
2)Inserito un codice da tastiera simulare i tre casi dove:
- Il prodotto ce in magazzino
-Il prodotto ce ma è finito
-Il prodotto non è presente
Non so più veramente come fare, non riesco a farlo girare. Una volta che inserisco la quantità di pezzi da acquistare il programma smette di funzionare.
P.S. codice_u= codice utente (cioè inserito dalla persona), pezzi_u=pezzi che l'utente vuole acquistare,prezzo_uni=prezzo del singolo pezzo
A voi la parola e grazie in anticipo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,totale,pezzi_u,n_pezzi,flag,prezzo_uni;
char codice [20];
char codice_u[20];
FILE*fp;
fopen("inventario.txt","r");
if(fp==NULL)
{
printf("ERRORE FILE.");
return -1;
}
printf("Inserisci il codice prodotto: ");
scanf("%s",codice_u);
printf("\n");
printf("Quanti pezzi vuoi acquistare? ");
scanf("%d",&pezzi_u);
i=0;
totale=0;
while(fscanf(fp,"%s %d %d",codice,&n_pezzi,&prezzo_uni)!=EOF)
{
if(strcmp(codice_u,codice)==0 && pezzi_u<=n_pezzi)
{
flag=1;
}
if(strcmp(codice_u,codice)==0 && pezzi_u>n_pezzi)
{
flag=2;
}
if(strcmp(codice_u,codice)!=0)
{
flag=3;
}
totale=totale+(n_pezzi*prezzo_uni);
i++;
}
printf("\n");
printf("Il valore totale del magazzino e' di %d Euro.",totale);
printf("\n");
if(flag==1)
{
printf("Il pezzo e' presente in magazzino. Rimangono disponibili %d pezzi.",n_pezzi-pezzi_u);
}
if(flag==2)
{
printf("Il pezzo e' presente in magazzino, ma non ci sono i pezzi sufficienti per la vendita.");
}
if(flag==3)
{
printf("Il pezzo non e' presente in magazzino.");
}
fclose(fp);
return 0;
}