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 :

afficher le résultat d'un test conditionnel dans un cout


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Par défaut afficher le résultat d'un test conditionnel dans un cout
    le code suivant fonction très bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    bool theBool = true;
    string strBool = (theBool) ? "vrai" : "faux";
    cout << "strBool = " << strBool << endl;
    par contre, si j'essaie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << (theBool) ? "vrai" : "faux";
    j'obtiens 0 ou 1 suivant la valeur de theBool.

    Que se passe-t-il exactement dans cette ligne?

    y a-t-il une façon d'imprimer directement le résultat du test ("vrai" ou "faux")
    avec un cout ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 500
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << ((theBool) ? "vrai" : "faux");

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Par défaut
    Merci !

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    sinon, il y a aussi std::boolalpha dans <iomanip> (référence).
    Ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <iostream>
    #include <iomanip>
     
    int main() {
        bool TheBool = true;
        std::cout << std::boolalpha << TheBool << std::endl;
        return 0;
    }

  5. #5
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Hello,

    Citation Envoyé par jfjobidon Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << (theBool) ? "vrai" : "faux";
    j'obtiens 0 ou 1 suivant la valeur de theBool.

    Que se passe-t-il exactement dans cette ligne?
    Pour expliciter la réponse de bacelar, c'est un problème de précédence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    cout << (theBool) ? "vrai" : "faux";
     
    // est strictement équivalent à
    (cout << (theBool)) ? "vrai" : "faux";
     
    // ce qui donne, remplacé par un if
    if(cout << (theBool)) { // on teste la validité du flux après l'affichage, et non la valeur de theBool
       "true"; // aucun effet
    }
    else {
       "false"; // aucun effet
    }

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

Discussions similaires

  1. test conditionnel dans un champ calculé
    Par funkyjul dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2008, 16h16
  2. Réponses: 20
    Dernier message: 21/11/2007, 13h42
  3. Réponses: 13
    Dernier message: 26/07/2007, 08h50
  4. Test conditionnel dans une JSP
    Par phpaide dans le forum Struts 1
    Réponses: 9
    Dernier message: 07/02/2007, 17h53
  5. Réponses: 6
    Dernier message: 02/10/2006, 12h13

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