Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C] validare un input

  1. #1

    [C] validare un input

    Salve a tutti. Premetto di non essere esperto di C, ma sto imparando.
    Ho due input che l'utente deve inserire da tastiera. Uno è un carattere alfabetico (minuscolo o maiuscolo non importa), l'altro è un numero da 0 a 9 (inclusi). Il primo è salvato in una var chat, il secondo in un int. Come posso fare un controllo che mi dia un errore se il primo è qualcosa di diverso da un char, mentre il secondo se è qualcosa di diverso da un int? Grazie a chi mi da una mano!.

    ps: uso borland c++ su un pc windows.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2
    ehi come fai a far partire il compilatore della borland su windows=?
    lo fai partire tramite il prompt dei comandi start ........

  3. #3
    secondo me fai prima a fare così:

    all'utente da tastiera gli fai inserire prima la parola, preme invio

    poi inserisce il numero, preme invio

    cosi inserisci i due valori separati

    /* è il mio primo consiglio che dò in C percui non fidarti tanto aspetta altre risposte da esperti */


    CIAO

  4. #4
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558

    Re: [C] validare un input

    Originariamente inviato da Nunkij
    Salve a tutti. Premetto di non essere esperto di C, ma sto imparando.
    Ho due input che l'utente deve inserire da tastiera. Uno è un carattere alfabetico (minuscolo o maiuscolo non importa), l'altro è un numero da 0 a 9 (inclusi). Il primo è salvato in una var chat, il secondo in un int. Come posso fare un controllo che mi dia un errore se il primo è qualcosa di diverso da un char, mentre il secondo se è qualcosa di diverso da un int? Grazie a chi mi da una mano!.

    ps: uso borland c++ su un pc windows.
    Così:

    codice:
    
    ...
    
    char c ;
    int i ;
    
    scanf ("%c %d",&c,&i) ;
    
    
    ...

  5. #5
    mi sembra ci siano funzioni come :
    isdigit();
    che dice se la variabile passata e' un numero e
    isalpha();
    che dice se e' un carattere...

    Comunque potresti fare un controllo tu del tipo

    codice:
    int num;
    do {
        // Ripete questo
        // Finche il Numero non e' compreso tra 0-9
    } while (num < 0 || num > 9);
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  6. #6
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Ah,ma intendeva il controllo??

    Emh Nunkj,scusami capito male pensavo che intendessi semplicemente come prenderli in input

    Cmq segui il consiglio di k nemo,va benissimo...

  7. #7
    Per i Caratteri potresti fare una cosa del Genere

    codice:
    do {
       // Ripeti l'inserimento
    } while ((car < 'A' || car > 'Z') || (car < 'a' || car > 'z'));
    non son sicuro dell'Or tra le due parentesi... Devi provarlo
    altrimenti sostituisci con And ma penso che vada bene OR
    ...Oggi non riesco a pensare...
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

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.