IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

blinder une saisie


Sujet :

C++

  1. #1
    Membre éclairé Avatar de LesLemmings
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 302
    Par défaut blinder une saisie
    bonjour,
    voila je fais des petits prog en c++ (console app) et je voudrais savoir si il etais possible de securiser une saisie :
    - j'ai un cin et je rentre un int, si je rentre un char alors c'est le bordele tout defile et sa plante
    c'est se genre de probleme que je voudrais eviter !
    merci de votre aide ^^

  2. #2
    Membre expérimenté Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Effectivement, la solution de la FAQ est très bonne! J'avais naturellement pensé à quelque chose du genre:

    inspiré de : http://cpp.developpez.com/faq/cpp/in...TRINGS_is_type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    #include <sstream>  
     
    template<typename T>
    bool is_of_type( const std::string & Str )
    {
        // créer un flux à partir de la chaîne donnée
        std::istringstream iss( Str );
        // créer un objet temporaire pour la conversion
        T tmp;
        // tenter la conversion et
        // vérifier qu'il ne reste plus rien dans la chaîne
        return ( iss >> tmp ) && ( iss.eof() );
    }
     
    int main()
    {
        std::string str;
     
        while( ! is_of_type<int>(str) )
        {
            std::cin >> str;
        }
    }
    Ca me parait presque plus simple en fait

    EDIT : non pas plus simple en fait !
    La solution de Ksempac est meilleure.

  4. #4
    Membre éclairé Avatar de LesLemmings
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 302
    Par défaut
    super merci et bravo pour la rapidité de reponce !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer une saisie clavier de l'utilisateur
    Par le y@m's dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 23/09/2019, 19h25
  2. blinder une saisie
    Par LesLemmings dans le forum C
    Réponses: 2
    Dernier message: 30/10/2007, 10h39
  3. Réponses: 4
    Dernier message: 22/12/2005, 16h46
  4. Controler une saisie
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2005, 10h36
  5. [JTable] Valider une saisie
    Par dam21 dans le forum Composants
    Réponses: 3
    Dernier message: 25/03/2005, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo