Ciao a tutti, devo creare un programmino semplice per la gestione di un piccolo listino di prodotti, con un vettore di stringhe e uno di float per i prezzi, però eseguendolo la gets non ne vuole sapere di acquisirmi la stringa e me la stampa sempre (null)... (per adesso i vettori sono per soli 2 prodotti per svilupparlo in maniera semplice...). Sapete dirmi dove sbaglio? Grazie.
P.S il vettore price è inizializzato tutto a -2 da richiesta dell'esercizio...
P.S il vettore price è inizializzato tutto a -2 da richiesta dell'esercizio...
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX 2
#define L 10
int main()
{
float price[MAX];
int n=0, i=0;
char warehouse[MAX][L];
int opz;
for(i=0; i<MAX; i++)
{
price[i]=-2; // inizializzazione vettore presenza prodotto o prezzo
}
do
{
printf("Listino prezzi\nPremi:\n1 per aggiungere un prodotto\n2 per stampare il listino\n0 per terminare\n");
scanf("%d", &opz);
switch(opz)
{
case (1): //aggiungi nuovo prodotto
if(n<MAX)
{
{
puts("Inserire il nome del prodotto:");
gets(warehouse[n]);
if(warehouse[n]==NULL)
{
printf("Errore, nome non valido\n");
break;
}
printf("inserire il prezzo del prodotto appena selezionato in €:\t");
scanf("%f", &price[n]);
}
n++;
}
else
{
printf("listino pieno!:-(\n");
}
break;
case 2: //stampa tutto il contenuto del listino
{
for(i=0;i<MAX;i++)
{
puts(warehouse[i]);
printf("\t\t%f €\n",price[i]);
}
}
break;
case 0:
{
printf("Arrivederci!!!\n");
return 0;
}
break;
default:
{
printf("comando non valido!!\n");
}
}
}
while (opz!=0);
}