Partage
  • Partager sur Facebook
  • Partager sur Twitter

vérifié le type d'une variable

Sujet résolu
    18 novembre 2017 à 16:49:46

    Bonjour, 

    je voudrais savoir comment tester et vérifier le type d'une variable.

    Par exemple:

    float r;

    cin >> r;

    Comment faire pour vérifié que se que l'on à insérer dans cette variable r est bien un float ?

    • Partager sur Facebook
    • Partager sur Twitter
      18 novembre 2017 à 17:55:47

      Salut,

      Ce n'est pas le type de variable que tu dois verifier, mais les entrées utilisateurs.

      Pour cela, il n'y a pas 36 moyens:
      - D'abord effectuer les saisies dans un type de données qui accepte tout (en l'occurrence: std::string).
      - Verifier que la saisie soit correcte (faire une tentative de convertion, ou utiliser les regex par exemple).
      - Faire la convertion vers le type final une fois la vérification validée.

      • Partager sur Facebook
      • Partager sur Twitter
        18 novembre 2017 à 18:04:30

        Si l'utilisateur n'entre pas quelque chose qui peut être traduit en un float, l'opérateur >> échouera:

        float askFloat(std::string const & msg)
        {
           float v{};
           for(;;){
              std::cout << msg;
              if ( !(std::cin >> v) ) {
                 std::cout << "Erreur!\n";
                 // nettoyage du flux
                 std::cin.clear(); // suppression des statuts d'erreur
                 // vider le flux du contenu indesirable
                 std::cin.ignore(std::numeric_limit<std::streamsize>::max(),'\n');
              } else return v;
           }
        }
           



        -
        Edité par int21h 18 novembre 2017 à 18:07:05

        • Partager sur Facebook
        • Partager sur Twitter
        Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

        vérifié le type d'une variable

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown