|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2005
Messaggi: 290
|
[C] come posso controllare la correttezza dei dati inseriti da tastiera?
ciao a tutti!
vi espongo il mio problema: vorrei implementare nei programmi che faccio ( sono ancora un niubbo ![]() thx in anticipo ![]()
__________________
_______________________________________________ AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S --- Acer Aspire 5024 ![]() Apple MacBook Pro 13" 2.53GHz ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jan 2001
Città: Rimini
Messaggi: 197
|
Codice:
int leggiValore() { const int MAX_CARATTERI = 10; int stato, i; char ch, strBuffer[MAX_CARATTERI] ; i = 0; stato = 1; fflush(stdin); while ((ch = getchar()) != '\n' && stato == 1) { if (i < MAX_CARATTERI) { if (isdigit(ch)) strBuffer[i++] = ch; else stato = -1; } else stato = -2; } fflush(stdin); if (stato == 1) { strBuffer[i] = '\0'; return atoi(strBuffer); } else return stato; } ciao.
__________________
Linux + xBox360 + iPod. Ognuno al suo posto. Ultima modifica di mostec : 05-03-2006 alle 13:19. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2005
Messaggi: 290
|
wow grazie mille davvero!!! ti spiace solo se ti faccio un paio di domande sul codice?
allora: - devo includere qualche libreria particolare o basta stdio.h? - fflush(stdin),isdigit(ch) e atoi(strBuffer) cosa fanno? non le ho mai studiate queste funzioni (come avevo già detto sono in niubbo..) . grazie mille!
__________________
_______________________________________________ AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S --- Acer Aspire 5024 ![]() Apple MacBook Pro 13" 2.53GHz ![]() |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jan 2001
Città: Rimini
Messaggi: 197
|
fflush(...) è una funzione che svuota il buffer che ha come argomento(stdin è il buffer input e stdout buffer di output).
atoi(vettore) trasforma un vettore di char in un numero int (atoi =Array TO Int). isdigit(carattere) verifica se il carattere che ha come argomento è un INTERO. per le librerie non ricordo in quale siano cmq a pelle direi che sono tutte in stdio.h se non sono lì prova in stdlib.h. ciao.
__________________
Linux + xBox360 + iPod. Ognuno al suo posto. |
![]() |
![]() |
![]() |
#5 | ||
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
Quote:
Attenzione: il comportamento di fflush su uno stream di input è indefinito, per cui fflush(stdin) non è standard e non è portabile. isdigit restituisce 1 se il suo argomento è uno dei caratteri che rappresentano le cifre decimali, e 0 altrimenti. atoi restituisce il valore intero rappresentato, in decimale dal prefisso della stringa di caratteri che è il suo argomento. Per le altre funzioni della libreria standard, procurati un buon manuale (io suggerisco sempre il Kernighan&Ritchie).
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
||
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Oct 2005
Messaggi: 290
|
grazie ad entrambi per le precisazioni!!! mi metto subito all'opera...
Quote:
![]() ![]() ci sono troppi pochi esempi ![]() cmq dovrei prendermi il deitel&deitel, dei miei amici mi hanno detto che è fatto abbastanza bene
__________________
_______________________________________________ AMD Athlon64 3500+, Cooler Master Hyper 6, Asus A8V Deluxe wifi-g Rev2.0, Corsair TwinX-1024 Pc3200XL Platinum, Western Digital Raptor 74GB, Cooler Master CoolDrive 4, Sapphire Radeon 9600XT 256MB, Sound Blaster Audigy Player, Cambridge Soundworks 4.0, Enermax Coolergiant EG485p/ax, Lg Flatron L1952S --- Acer Aspire 5024 ![]() Apple MacBook Pro 13" 2.53GHz ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:15.