PDA

Visualizza la versione completa : [C] validare un input


Nunkij
08-05-2004, 14:23
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.

thedarkweb
08-05-2004, 14:29
ehi come fai a far partire il compilatore della borland su windows=?
lo fai partire tramite il prompt dei comandi start ........ :confused:

visualnic
08-05-2004, 18:01
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

Lardoman
08-05-2004, 18:05
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:





...

char c ;
int i ;

scanf ("%c %d",&c,&i) ;


...




:ciauz:

kNemo
08-05-2004, 18:06
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



int num;
do {
// Ripete questo
// Finche il Numero non e' compreso tra 0-9
} while (num < 0 || num > 9);

Lardoman
08-05-2004, 18:09
Ah,ma intendeva il controllo??

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

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

kNemo
08-05-2004, 18:09
Per i Caratteri potresti fare una cosa del Genere



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 :D ma penso che vada bene OR
...Oggi non riesco a pensare... :D

Loading