Test sur boolen

lamoule64 Messages postés 1 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 9 mars 2007 - 9 mars 2007 à 19:14
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 10 mars 2007 à 14:53
bonjour,

comment tester si une variable est booleene ?
existe t-il une fonction du style isnan mais pour les booleens ?

merci

8 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
9 mars 2007 à 19:48
Évalue la taille de la variable avec sizeof. Si la taille est de 1, il s'agit d'un bool ou d'un char.

C++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
9 mars 2007 à 19:50
Cependant, si la variable est entré par l'utilisateur (sous forme numérique) et donc est sous format ASCII, il faut tester:
if(variable '1' || variable '0')
    ...

C++ (@++)<!--
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 mars 2007 à 19:54
La question n'a pas de sens.
Une variable de 1 octet n'est pas plus un booléen qu'une variable de 4 octets (en Win32, BOOL==int par exemple).

En plus c'est pas le genre de choses qu'on teste à l'exécution.
Pour les flottants ca aurait un sens, puisqu'une valeur est réservée pour NaN, mais pour un booleen non...

J'aimerais bien voir dans quel contexte tu penses avoir besoin de faire ca

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 mars 2007 à 01:42
C'est fou ce qu'il peut y avoir de faux concepts ancrés dans les esprits.

On peut tester le non zéro partant de nimporte quoi donc tout peut être regardé comme boolean.
Privilégiez d'ailleurs le int au bool du C++, vous y gagnerez en vitesse comme en taille de code.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_azamharir Messages postés 55 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 1 novembre 2008
10 mars 2007 à 02:12
salut
A ce que j'ai compris, tu peus faire ainsi :
#include <typeinfo>
#include
#include<string.h>

void main()
{   
   
    bool a;

    if(!strcmp(typeid(a).name(),"bool"))
        cout << "c'est un " << typeid(a).name() << endl;
    else
        cout << "ce n'est pas un bool" << endl;

}
Il fallait juste voir ce lien dans le site : [codes/RECONNAISSANCE-TYPES-OBJETS-CPLUSPLUS_35631.aspx http://www.cppfrance.com/codes/RECONNAISSANCE-TYPES-OBJETS-CPLUSPLUS_35631.aspx]
 @ +
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
10 mars 2007 à 14:31
Je ne fesais que répondre à la question (un bool fait bien 1 octet non ?)
Moi, dans mon esprit, variable veut dire -> bool value;
Question pas claire == réponse pas claire

Faudrait savoir ce qu'il veut dire par variable, car en effet, c'est inutile de savoir si une variable est d'un type ou d'un autre directement dans le code. C'est toi qui l'a codé alors si tu sais pas ça...

Si c'est à la saisi de l'utilisateur, faut voir ce qu'il veut entré. Si c'est des 1 ou des 0:
if(value == '1')
else if(value == '0')
else

ou directement en numérique
if(value == 1)
else if(!value)
else

Pour les "true" "false", on peut utiliser des strcmp.

En gros, il s'agit simplement de limiter les entrés que peut faire l'utilisateur pas d'évaluer si il s'agit du bool ou non.

C++ (@++)<!--
0
cs_azamharir Messages postés 55 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 1 novembre 2008
10 mars 2007 à 14:48
salut
moi je suis parti de ça : existe t-il une fonction du style isnan mais pour les booleens ?
donc il ne veus que savoir le type et pas la valeur.
@++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 mars 2007 à 14:53
Pour moi, c'est comme s'il demandait s'il existe une fonction du style "est-ce que ma variable s'appelle x"? Je vois pas a quoi ca pourrait servir.

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
Rejoignez-nous