|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
05-07-2004, 21.37.58 | #1 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
...non capisco più nulla! (--- C ---)
sono completamente andato.... Come posso fare (in C) per capire se l'input digitato dall'utente è un numero oppure una stringa? grazzzzzzie
___________________________________
...ad ogni alba sorgerà il tuo profumo |
05-07-2004, 22.04.04 | #2 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
Dipende come fai l'input...
se parli di C puro, suppongo tu stia usando una scanf o simile .. cioè significa che avrai uno specificatore di formato che converte l'input a tua volontà... Se l'input invece lo ricevi come stringa e vuoi controllare se sia o meno numerico, ricordati sempre che una stringa è un'array di char e quindi lo puoi scomporre ed analizzare carattere per carattere per capire cosa ha inserito l'utente.... Bye |
06-07-2004, 08.50.54 | #3 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
con lo "scanf" acquisisco l'input e lo immagazzino in un "int" che deve essere compreso tra 0 e 999...
inserendo delle lettere parte un loop infinito... cosa mi consigli? ho provato a usare un paio di funzioni della libreria "ctype.h" ma senza risultati... (ero anche un pò di corsa ieri sera ) mi consigli di immagazzinare tutto in una stringa e analizzare carattere per carattere (tralasciando il "\0" finale) se corrisponde alla tabella ascii? ciao ns-1
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 08.56.54 | #4 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
... ho guardato adesso la tabella ascii...
controllo che ogni carattere sia compreso tra 48 e 57 (0...9)? mi piacerebbe qualcosa di più "elegante" però......
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 09.16.45 | #5 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Non c'è altro modo per farlo in modo più elegante.
Devi controllare carattere per carattere, non c'è altro da fare. Potresti pensare di controllare il codice ASCII dei tasti digitati subito dopo la loro pressione e decidere quali possano essere considerati validi e quali no. La tua funzione potrebbe essere una cosa del genere: Codice:
Ripeto { Eseguo l'input da tastiera Se l 'input è compreso tra 48 e 57 { Aggiungo il carattere digitato ad un array di caratteri Scrivo il carattere digitato } } Finchè il carattere non è invio. Ritorno il valore intero dell'array di caratteri. |
06-07-2004, 10.41.37 | #6 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
ok...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 13.35.56 | #7 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
mi serviva giusto per fare questo stupido programmino di prova...
fatemi sapere se ho tralasciato qualche controllo... ciao ciao...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 15.26.18 | #8 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
Si, direi che il metodo carattere per carattere è il più corretto ed il più sicuro .. anche il programma non sembra, a parer mio, avere problemi nella ricezione dell'input...
Come mai hai scelto -1 per uscire e non 0? Bye |
06-07-2004, 15.54.29 | #9 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
...deformazione...
ho sempre utilizzato -1 senza nemmeno pensarci... vado a correggere... grazie...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 15.59.51 | #10 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
.. .. Non era una critica .. solo una curiosità...
Bye |
06-07-2004, 16.25.29 | #11 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Perchè se inserisco +2 non me lo accetta ?
(Che bastardo che sono ) |
06-07-2004, 16.33.14 | #12 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
NS-1, ti stavo mandando un pvt, ma hai la mailbox piena.
Volevo solo dirti che non ti ho risposto perché ieri sera non c'ero. |
06-07-2004, 16.34.47 | #13 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
LoryOne sei un..... bravo ragazzo...
provate questo...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 16.36.17 | #14 |
Hero Member
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
|
Alhazred, ora la mailbox è libera e.... grazie comunque...
___________________________________
...ad ogni alba sorgerà il tuo profumo |
06-07-2004, 16.39.05 | #15 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
E adesso come mai se inserisco '+' il programma termina?
Bye |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
BOT mi sa che non è nulla di rassicurante | onairda | Sicurezza&Privacy | 10 | 26-09-2005 21.45.25 |
Nulla contro nulla o nessuno... però leggete questa mail che ho ricevuto..... | torakiki78 | Chiacchiere in libertà | 42 | 26-04-2005 23.07.54 |
NEC2510-A non legge più nulla | Thor | Hardware e Overclock | 8 | 16-03-2005 19.53.42 |
Non capisco.... | torakiki78 | Chiacchiere in libertà | 14 | 13-01-2005 00.31.17 |
connessione dal nulla | claudia1974 | Sicurezza&Privacy | 10 | 17-09-2003 13.07.29 |