/* Conversione stringhe --> numeri interi. Scrivere una programma che legga una sequenza di caratteri terminata da "a capo" rappresentante una costante intera (eventualmente con segno '-'). Se la sequenza e' sintatticamente corretta memorizzare il corrispondente numero intero in una variabile di tipo `int' e visualizzarlo; altrimenti visualizzare un opportuno messaggio. */ #include int main() { char c; int num = 0; bool negativo = false; bool errore = false; int cont = 0; cout << "Inserire un numero intero: "; do { c = cin.get(); if (c == '-') { if (negativo) errore = true; else negativo = true; ++cont; } else if (c >= '0' && c <= '9') { num *= 10; // Sottraendo questa quantita' si arriva // al numero corrispondente (ASCII). num += c - 48; ++cont; } else if (c == '\n') { if (negativo) num *= -1; } else errore = true; } while (c != '\n' && errore == false); // L'utente ha inserito soltanto `-'. if (negativo && cont == 1) errore = true; if (errore == true) cout << "Sintassi errata!" << endl; else cout << "Il numero immesso e': " << num << endl; return 0; }