AITUS95
Nuovo Utente
- Messaggi
- 109
- Reazioni
- 11
- Punteggio
- 39
Buonasera a tutti, sto cercando di risolvere una vulnerabilità presente nel seguente codice:
in pratica quando un utente inserisce un carattere anzichè un intero, il programma genera un ciclo infinito, come potrei risolvere ?
C:
#include <stdio.h>
int main (void){
puts ("Inserisci la quantita' e il numero del prodotto per calcolarne il guadagno.");
puts ("Inserisci '-1' per terminare.");
// Input dei dati
printf ("%s", "NUMERO PRODOTTO: ");
int prodotto;
scanf ("%d", &prodotto);
// Inizializza totale a 0
double totale = 0.0;
// Ripeti fino all'inserimento del valore -1
while (prodotto != -1){
// Inserimento della quantita di prodotto venduto
int quantita;
scanf ("%d", &quantita);
// Determina il prodotto poi esegui il calcolo
switch (prodotto){
case 1:
totale += 2.98 * quantita;
break;
case 2:
totale += 4.50 * quantita;
break;
case 3:
totale += 9.98 * quantita;
break;
case 4:
totale += 4.49 * quantita;
break;
case 5:
totale += 6.87 * quantita;
break;
default:
printf ("Numero di prodotto non valido: %d\n", prodotto);
printf (" Quantita': %d\n", quantita);
}
// Passa al prodotto successivo
printf ("%s", "NUMERO PRODOTTO: ");
scanf ("%d", &prodotto);
}
// Stampa il guadagno totale
printf ("Il guadagno settimanale e': $ %.2f", totale);
}
in pratica quando un utente inserisce un carattere anzichè un intero, il programma genera un ciclo infinito, come potrei risolvere ?