|
|||||||
|
|
|
![]() |
|
|
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 14: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: 16212
|
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: 06:12.




















