Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    62

    [C] Limitare l'input da tastiera ai soli 10 tasti dei numeri + INVIO e DEL

    E' possibile limitare, in un scanf() o in qualche altro modo, l'input da tastiera ai soli 10 tasti dei numeri + INVIO e DEL???

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    In che senso limitare?
    In teoria si possono filtrare eventuali caratteri digitati,oppure si può fare un ciclo che stampa messaggio d' errore e continua a chiedere l' input finchè non vengono digitati solo numeri.
    Usando:
    codice:
    scanf("%d",&num);
    Se si digita un carattere te lo prende lo stesso,l' unica cosa che puoi fare è ignorare i caratteri o ripetere la scanf.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    62
    Quello che hai detto te è proprio quello che ho chiesto io
    per la scanf() ce la facevo.....

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Guarda,ti faccio un esempio di una parte di programma che ho usato in un altro contesto:
    codice:
    while(ctr<1||ctr>12)
        {
            if(flag)
                printf("Scelta non valida,inserire il mese (1/12):\n");
            else
                printf("Inserisci mese:\n");
            p=get_string(stdin,p);
            ctr=atoi(p);
            flag=VERO;
        }
    La devi riadattare al tuo caso,in questo caso chiedo solo mesi quindi numeri da 1 a 12.
    La atoi ritorna 0 se non ci sono numeri,quindi devi includere il caso che si digiti 0.
    Poi se vuoi ignorare i caratteri ci sono tanti modi,mi ricordo che avevo scritto un programma che a un certo punto prendeva solo i numeri,ad esempio 4grhrh5hhht te lo prendeva come 45.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    62
    ma il problema non è quello.....il problema sta nel fatto chè si è costretti ad usare il getch() in un ciclo, per prelevare i caratteri uno ad uno e controllarli e neanche questo è il problema. Il problema sorge quando l'utente vuole inserire INVIO o DEL, perchè devi cancellare il numero inserito prima (preso sempre col getch() nel ciclo precedente, se esiste), oltre che a produrre le conseguenze di INVIO e DEL......

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Stai già affrontando lo stesso argomento in questa discussione.

    Non aprire più thread sullo stesso argomento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.