Salve gente, ho scritto un programmino in c++ per capire l'uso delle enumerazioni; eccolo qui:
Non presenta errori durante la compilazione(0 errori e 0 warning), tuttavia mentre lo eseguo accadono cose strane:codice:#include <iostream> using namespace std; int main() { typedef enum colore{giallo, rosso, blu}; colore c1, c2; int choose; cout << "Inserisci il colore:\n" << endl; cout << "1 - giallo\n2 - rosso\n3 - blu\n"; cin >> choose; do { switch(choose){ case 1: c1 = giallo; cout << c1 << endl; break; case 2: c1 = rosso; cout << c1 << endl; break; case 3: c1 = blu; cout << c1 << endl; break; default: cout << "Selezione errata; riprova\n"; cin >> choose; } }while(choose != 1 && choose != 2 && choose != 3); cout << c1 << endl; c2 = c1; cout << c2 << endl; return 0; }
se provo a inserire un valore di choose compreso fra quelli che mando a schermo(1, 2, o 3), il programma mi stampa senza alcun problema i valori di c1 e c2 corrispondenti. Se invece provo a inserire volutamente un dato sbagliato(per esempio 5), il progamma mi invita a ripetere l'operazione, ma al momento dell'inserimento del dato esatto, il debug mi dice che alla riga
sto usando la variabile c1 senza averla definita. Nella fattispecie assegna a c1 l'anormale valore di -85899346. Come posso risolvere questo problema?codice:cout << c1 << endl;
La cosa strana è che se inserisco il valore choose esatto al primo tentativo il programma si chiude correttamente, mentre se sbaglio al primo tentativo e azzecco al secondo mi dà errore!

Rispondi quotando
grazie assai!
