Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    29

    Input non valido-->ripetere l'input[C++]

    Come da topic...come implementereste questa cosa:

    int numero;
    cout << "Immetti numero";
    cin >> numero;
    //resto del programma


    A questo punto vorrei che se l'utente non mi immette un numero ma una lettera o una parola, il programma ignorasse il suo input e richiedesse Sistematicamente all'utente di nuovo di immettere un numero.

    Come lo implementereste voi?

    Grazie
    Elric

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    do {
    cout << "Immetti un numero: ";
    cin >> numero;
    } while ( numero != come_lo_vuoi_te );

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    29
    Grazie $$$, ma così funziona solo se in input gli dò un numero (anche se non è quello che voglio io)...ad esempio, volendo solo numeri positivi, io farei:

    int numero;
    do {
    cout << "Immetti un numero: ";
    cin >> numero;
    } while ( numero <= 0 );

    Purtroppo, se per sbaglio io non immetto un numero, ma una lettera, mi genera un loop infinito!
    Il mio vero problema è evitare questi loop infiniti.

    Grazie
    Elric

  4. #4
    Utente di HTML.it L'avatar di JamesD
    Registrato dal
    Oct 2001
    Messaggi
    415
    prova a cercare qualcosa a riguardo di 'try e catch'. Non so se fanno al caso tuo, servono per la gestione delle eccezioni!


  5. #5
    codice:
    char numero;
    do { 
        cout << "Immetti un numero: "; 
        cin >> numero; 
    } while ( numero != '0' ); // zero to escape

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    29
    Ottimo suggerimento, Johnny Depp...trattarlo come carattere...temo però che mi generi cmq un loop infinito se io digito una parola di 2 o più lettere.
    Su try e catch ho provato, ho trovato, ma non funziona (per mio demerito, sicuramente), ma ho visto che in generale è la procedura più forte per trattare le eccezioni.

    Ciao
    Elric

  7. #7
    aggiungi:

    fflush(stdin);

    prima di:

    cout << "Immetti un numero: ";

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.