|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5749
|
[c/c++]: Una funzione per controllare i float in input!
Rieccomi, nuova puntata dei miei esperimenti.
Stavolta sono alle prese con una funzione in grado di controllare l'input da tastiera. Tempo fa avevo implementato una funzione ben funzionante per controllare i numeri interi. Funzionava così: passandole uno string scansionava alla ricerca di caratteri che fossero diversi dalle lettere sfruttando isdigit. Se risultava un carattere diverso da una lettera tornava l'errore. Il limite era rappresentato dall'accettabilità di soli valori interi perchè il punto o la virgola sono caratteri diversi dalle lettere. Avete qualche idea da suggerirmi? Per esempio: se digito 2sdfv4345,3 deve dirmi che è errore, mentre se digito 2,3 o 2.3 deve darmi un numero che, se venisse moltiplicato per 2, darebbe 4.6. Poi deciderei se tenere il punto o la virgola. Grazie.
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Codice:
string floatValue;
//Acquisisci da tastiera
std::stringstream stream(floatValue);
float x;
if (!(stream >> x))
throw runtime_error("Impossibile convertire " + floatValue + " in un float");
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:24.



















