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

SL & STL C++ Discussion :

assertion ou cin.fail


Sujet :

SL & STL C++

  1. #1
    Membre éclairé
    Avatar de warubi
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 399
    Par défaut assertion ou cin.fail
    Bonjour j'ai cree un programme mais j'hesite entre utiliser des assertions ou
    utiliser cin.fail.Pouvez-vous me conseilller dans ce cas precis.Voici un bout de code:

    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
     
    #include <iostream.h>
    /* #include <casser> si asserion */
    int main()
    {
    short nombre = 0;
    cout <<"Tapez un nombre positifs (max plage de short) " << endl;
    cin >> nombre;
    /* Soit assert(nombre < 0); */
    /* if (cin.fail)
        {
        instructions
        return 1;
        }
        else
        {
         instruction */
        }
    return 0;
    }

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Une assertion, c'est un test qui ne doit pas pouvoir échouer ; dans le cas contraire le programme quitte violemment. A utiliser donc sur le code dont tu as une maîtrise à 100%, et surtout pas sur une saisie utilisateur. Là il vaudra mieux afficher un message sympathique à l'utilisateur, et lui demander de recommencer.

    D'autant plus qu'il existe du code (voir FAQ) pour détecter plus finement les erreurs de saisie sur un entier.

  3. #3
    Membre éclairé
    Avatar de warubi
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 399
    Par défaut
    merci pour toutes ces precisions !

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 292
    Par défaut
    assert est un outil pour les développeurs, et eux seul. Il est à réserver à l'interception d'erreurs de programmation, pas pour les erreurs liées au contexte d'exécution.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre éclairé
    Avatar de warubi
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 399
    Par défaut
    merci, je ne le savias pas.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/01/2012, 07h56
  2. Assertion `__zone_len >= 5' failed.
    Par Dreyliciouss dans le forum Fortran
    Réponses: 2
    Dernier message: 06/08/2010, 11h30
  3. Réponses: 4
    Dernier message: 22/11/2005, 17h55
  4. cin.fail en Ctoutcourt??
    Par Sebsheep dans le forum C
    Réponses: 10
    Dernier message: 03/11/2005, 17h07
  5. Réponses: 3
    Dernier message: 07/12/2004, 22h09

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