Se, però, ti interessa interrompere il ciclo all'immissione di un particolare tipo di valore (es. un numero negativo o una lettera), puoi usare le funzioni della libreria
<cctipe> (in C-style,
<ctype.h>), che presenta, tra le altre, le seguenti funzioni:
isalnum() -> ha come risultato
true se l'argomento è alfanumerico
isalpha() -> ha come risultato
true se l'argomento è una lettera
iscntrl() -> ha come risultato
true se l'argomento è una sequenza di controllo
isgraph() -> ha come risultato
true se l'argomento è un qualunque carattere diverso dallo spazio
isdigit() -> ha come risultato
true se l'argomento è un numero in base decimale. Per i numeri esadecimali, si usa
isxdigit()
Ora, ti suggerirei di procedere inserendo una di queste funzioni come condizione di verifica del ciclo. Per esemplificare, ho scritto (in 2 minuti, quindi non è che sia il massimo, ma rende l'idea) un semplice programma:
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <cctype> using namespace std; int main() { cout << "Insert a value => "; char chr; cin >> chr; while(isalpha(chr)) { cout << "Insert a new chr value => "; cin >> chr; } cin.get(); cin.get(); return 0; }
|
Provandolo, potrai notare che il ciclo proseguirà finchè tu non inserirai un numero o un qualunque altro carattere che non sia alfabetico.
Ultima modifica effettuata da il 10/04/2011 alle 9:51