begin process at 2012 05 30 22:43:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Vérifier la saisie d'un utilisateur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Vérifier la saisie d'un utilisateur

dimanche 12 septembre 2010 à 20:52:49 | Vérifier la saisie d'un utilisateur

Madaraa

Bonsoir,

j'ai un exercice ou je dois tester la saisie de l'utilisateur, si c'est un chiffre entre 1 et 100 j'affiche le chiffre en question, mais il faut aussi que je gère les erreurs, si l'utilisateur affiche un chiffre a virgule je dois mettre un message d'erreur, il me manque simplement le test pour savoir si c'est un double mais je ne sais pas comment faire voici mon code:
Code C/C++ :
#include <iostream>
using namespace std;

int main()
{
    try
    {
        int nb1;
    
        cout<<"Entrez un chiffre entre 1 et 100  svp : ";
        cin>>nb1;
    
        if(nb1>=0 && nb1<=100)
        {
            cout<<nb1;
        }                

        else
        {
            cout<<"Veuillez entrez un chiffre entre 1 et 100 svp";
        }
    }
    
    catch(int)
    {
    cout<<"Veuillez entrez un chiffre entre 1 et 100 svp";
    }        
    
}
lundi 13 septembre 2010 à 10:27:23 | Re : Vérifier la saisie d'un utilisateur

louis14

Bonjour,
je pense qu'il faut que tu déclares une variable intermédiaire de type string et que tu testes cette string.
Quese passe-t-il si ton utilisateur rentre une lettre à la place d'un chiffre....


louis
lundi 13 septembre 2010 à 12:27:25 | Re : Vérifier la saisie d'un utilisateur

CptPingu

Administrateur CodeS-SourceS
Plusieurs soucis avec ton code:
- Èvite les using namespace, voir: [ Lien ]
- Try.. catch ne sert pas à attraper ce genre d'erreur. Il n'attrape que ce qui est lancé par un throw.
- Un nombre à virgule entre dans un nombre entier. Tout ce qu'il y a après la virgule sera perdu, mais ça ne provoque pas d'erreur. Si un utilisateur entre 45.6, on lui affichera 45.
- Si un utilisateur entre "abcd", alors ton programme va déconner parce que ça n'entre pas dans un int.

Pour gérer toutes ces erreurs, tu peux faire comme ceci:
Code C/C++ :
#include <iostream>
#include <limits>

int main()
{
  int nb1 = 0;

  while (nb1 == 0)
  {
    std::cout << "Entrez un chiffre entre 1 et 100 svp : ";
    std::cin >> nb1;
    if (std::cin.fail() || nb1 < 0 || nb1 > 100)
    {
      nb1 = 0;
      std::cin.clear();
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }
  }

  std::cout << nb1 << std::endl;

  return 0;
}


A noter que si tu veux vraiment dire à l'utilisateur "Pas de nombre à virgule svp", tu sera obligé d'utiliser la technique proposée par louis14, et utilise un std::string.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio

Merci d'utiliser Réponse acceptée si un post répond à votre question


Cette discussion est classée dans : chiffre, utilisateur, saisie, cout, nb1


Répondre à ce message

Sujets en rapport avec ce message

verifier saisie chiffre et opération en C. [ par dealer2kinder ] Salut,voila je programme en C sous devC++ et j'aimerais savoir quel fonction me permettrait de savoir si l'utilisateur a bien saisie un chiffre entier Je n'arrive pas a créer une variable aléatoire !!! [ par daikyo ] Bonjour a tous, j'ai dévelopé un petit jeu ou l'on doit trouver un nombre entre 1 er 100 mais ce nombre (ici la variable Nb1) a trouver je souhaiterai Problème de saisie avec cin (c++) [ par SystemOfAXav ] Salut,Je doit programmer un petit jeu comme projet de fin de semestre.A plusieurs reprises, je demande a l'utilisateur de saisir un entierentre 3 et 1 que des boucles. [ par pratix ] Salut à tous.Je post mon prg cherchenbr modifié (voir sujet précédent ''int main" ).Programme compilé avec visual C++ 06. ( zéro erreur )j'ai essay Saisie de données [ par oligator ] Bonjour j'aimerais savoir s'il y a moyen de gérer la validité des saisies d'un utilisateur avec une méthode de iostream.Par exemple, lors de la saisie Controle chiffre en C++ [ par Marcel62 ] Voila mon problème: Mon programme ne doit accepter que les nombre entre 0 et 1000, mais lorsque je saisis une lettre il plante. Que doit je modifier p saisie 1 seule lettre, pas le reste [ par blinix123 ] Yop all, Voilou petit probleme en C++, je pose une question a l'utilisateur et il doit repondre par O ou N, or s'il tape OONAZ, et bien le programme v C++ - Autoriser que la saisie d'un chiffre [ par Diminux ] Bonjour à tous,Comme le titre du topic l'indique, je cherche à n'autoriser que la saisie d'un chiffre (et donc interdire les lettres).Merci d'avance p saisie de caractère besoin urgent [ par rab21 ] bonjour à tous!! voilà je suis un ptit newbie de la programmation :) et j'aimerai savoir comment jpourrais faire ce ptit programme:je dois pouvoir sai analyser une saisie utilisateur [ par Jade8 ] Bonsoir,Je souhaite découper une chaine de caractères pour pouvoir la traiter par la suite, y a-t-il des fonctions qui permettent d'éliminer des délim


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales