Variabile alfanumerica

di il
5 risposte

Variabile alfanumerica

Ciao a tutti ragazzi,avrei bisogno di un aiuto.
Ovvero praticamente sto compilando un programma da consegnare all'università che deve prendere in input caratteri numerici da 0 a 9, ma il testo dell'esercizio dice anche che se incontra un carattere che non sia compreso tra 0 e 9 esce dal programma ma se io metto un ciclo if e la condizione e che c (il numero in input) deve essere compreso tra 0 e 9 nell'else come faccio a dire che non può essere nessun carattere al di fuori dei numeri da 0 a 9??
Se devo usare una variabile char sareste cosi paziennti da spiegarmi come fare??

Grazie mille in anticipo.

5 Risposte

  • Re: Variabile alfanumerica

    rasmik ha scritto:


    un ciclo if
    ???

    Comunque secondo me la soluzione più semplice prevede la lettura dell'input carattere per carattere (quindi attraverso i char). Dopodiché confronti se il char rientra nell'insieme di tuo gradimento [0..9], e in questo caso continui a leggere l'input passando al carattere successivo), altrimenti esci..

    Come confrontare se il char è "giusto"?
    
    if/while (carattereLetto >= '0' && carattereLetto <= '9') {
       ...
    }
    
    //oppure
    
    if/while (carattereLetto >= 48 && carattereLetto <= 57) {
       ...
    }
    
  • Re: Variabile alfanumerica

    Si ciclo if per dire ciclo condizionale
    Comunque io con questi numeri ci devo fare anche operazioni...è questo quello che non capisco come fare...
  • Re: Variabile alfanumerica

    Tabella dei caratteri ASCII:
    Nel tuo ciclo controlli se il char in input e' compreso tra 48 e 57 (estremi inclusi), come gia' detto da Della. Per ottenere l'intero dal char, dato che sei su questo intervallo ristretto basta semplicemente fare:
    
    //c e' il carattere che hai letto e sai gia' che e' un numero tra 0 e 9
    int num = c - 48;
    
  • Re: Variabile alfanumerica

    E se non vuoi ricordarti i codici ASCII delle cifre fai
    
    int num = c - '0';
    
  • Re: Variabile alfanumerica

    Ciao ragazzi, Grazie mille per l'aiuto il programmini funge:
    #include "std_lib_facilities.h";

    int main () {
    const int MAXDIGIT = 5;
    char c;
    int v = 0;
    for (int i = 0; i < MAXDIGIT ; i++) {
    cout << "inserire carattere numerico: " ;
    cin >> c ;
    if ( c >= '0' && c <= '9' ) {
    for (int j = 1; j < 5; j = (j * 10)) {
    j = j * 10 ;
    v = (v * j) + (c -'0') ;
    }
    }
    else {
    cout << "Hai inserito un carattere non valido" << endl ;
    break;
    }
    }
    cout <<"Display: " << v << endl ;
    }
Devi accedere o registrarti per scrivere nel forum
5 risposte