Numero da tastiera e reiterazione

di Anonimizzato26870 il
5 risposte
Ciao ragazzi, di solito per richiedere all'utente di inserire un valore numero, compreso tra un max e un min o da delle condizioni che definisco io, uso questo tipo di algoritmo.

    printf("Inserisci il valore di f compreso tra 1 e 10 inclusi\n");
    do{
        r=scanf("%d",&f);
        if (r!=1){
            printf("Input non valido.\n f = ");
            char s[255];
            scanf("%s",s);
        }else if ( f<1 || f >10) {
            printf("Il numero inserito non ripetta il range richesto .\n f= ");
            r=0;
        }
    }while (r!=1);
Funziona per carità, volendo si può mettere anche dentro una funzione cosi da usarlo quante volte ti serve in modo abbastanza veloce, però penso che si possa fare di meglio.
Volevo sapere se ci fosse un algoritmo un po più smart per fare questo tipo di lavoro
(ps: che poi questo algoritmo funziona ma neanche troppo bene perché se per esempio inserisco il valore 5b,al computer va bene lo stesso quando int teoria non dovrebbe)

5 Risposte

  • Il motivo di quel:
    char s[255];
    scanf("%s", s);
    ?
  • driverfury ha scritto:


    Il motivo di quel:
    char s[255];
    scanf("%s", s);
    ?
    pulire il buffer
  • Una soluzione e' quella di NON RICHIEDERE l'input da tastiera ma passarlo come parametri sulla riga di comando oppure mediante un file di comandi/parametri
  • migliorabile ha scritto:


    Una soluzione e' quella di NON RICHIEDERE l'input da tastiera ma passarlo come parametri sulla riga di comando oppure mediante un file di comandi/parametri
    ma questo tipo di procedimento non farebbe nessun controllo sui parametri o sbaglio?
Devi accedere o registrarti per scrivere nel forum
5 risposte