Tri de réponses chiffre/caractère [resolu]

Tri de réponses chiffre/caractère [resolu] - C++ - Programmation

Marsh Posté le 07-08-2007 à 16:38:43    

Bonjour à tous,
 
Voilà, ça fait un moment que je cherche, comment fait-on, lorsque qu'un utilisateur doit entrer un chiffre et qu'on aimerait lui interdire d'entrer un caractère??
 
Merci bcp d'avance, ça me sera très utile...


Message édité par sienda le 08-08-2007 à 15:34:33
Reply

Marsh Posté le 07-08-2007 à 16:38:43   

Reply

Marsh Posté le 07-08-2007 à 16:54:08    

Salut,
 
Quel est le toolkit utilisé? Déjà, est-ce une interface graphique ou un programme en mode console?
 
Petit bonus: peux-tu éditer ton titre pour qu'il reflète plus précisément ton problème stp?

Reply

Marsh Posté le 07-08-2007 à 17:00:37    

Voilà, j'ai édité le titre, dsl mais je savais pas trop quoi mettre, sinon, c'est en mode console et dsl, mais je suis débutant, c'est quoi toolkit??


Message édité par sienda le 07-08-2007 à 17:00:52
Reply

Marsh Posté le 07-08-2007 à 17:35:01    

Un toolkit c'est, disons, une grosse librairie facilitant une ou plusieurs tâches (ça peut être destiné à simplifier la programmation d'interface, réseau, autre, ou un peu de tout à la fois).
 
Pour ton problème, lorsque tu extrait une valeur, l'état interne est modifié. Si la conversion vers le type voulu n'est pas possible, alors cin présentera l'état failbit (cin.good() == false, bien que cette méthode prenne en compte toute les erreurs, ce doit être suffisant pour commencer).

Reply

Marsh Posté le 08-08-2007 à 10:49:38    

hello,
 
Merci, effectivement, maintenant le programme fait la différence entre chiffres et caractères. Le but est de faire une boucle qu'on ne quitte pas tant qu'on entre des caractères, cela marche, je la quitte dès que je rentre un chiffre, mais si je mets un caractère, la boucle tourne en boucle... Est-ce que qqun aurait une idée??

Reply

Marsh Posté le 08-08-2007 à 11:35:04    

Il ne faut pas oublier de nettoyer les flags. Tu trouveras la fonction dans la doc d'ios.

Reply

Marsh Posté le 08-08-2007 à 15:34:07    

En fait, j'ai trouvé un moyen, avec la fonction "atoi". Il y a aussi la fonction atof pour transformer en float. Ainsi, un caractère aura la valeur 0...
 
int x;
   do      
   {
         char y[512] ;  
         cout<<"tapez 1 si vous etes dans un systeme de notes 1-10 et 2 si vous etes dans un systeme de notes 1-6"<<endl;
         cin>>y;
         x=atoi(y);  
   }

Reply

Marsh Posté le 08-08-2007 à 17:36:11    

atoi, c'est du C et c'est une méthode crade :/

Reply

Marsh Posté le 08-08-2007 à 22:46:47    

En plus atoi est déprécié depuis pas mal de temps !
Il FAUT utiliser strtol.

Reply

Marsh Posté le 09-08-2007 à 12:05:55    

ni l'un ni l'autre. Le vrai problème ici c'est ce char[].
 
Il faut utiliser :
- std::getline
- std::istringstream

Reply

Marsh Posté le 09-08-2007 à 12:05:55   

Reply

Marsh Posté le 09-08-2007 à 23:17:51    

Taz a écrit :

ni l'un ni l'autre. Le vrai problème ici c'est ce char[].
 
Il faut utiliser :
- std::getline
- std::istringstream

Moi je ne réponds que pour le C, pas le C++   :ange:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed