Booleen C++

ubuntu i love you Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
ubuntu i love you Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous
Je suis debutant en C++ et je voudrais que vous regardiez ce code, je veux qu'il me retourne un vrai ou faux selon que le caractere soit une majuscule ou non, mais je ne sais pas comment fonctionne le booleen... Merci




#include <iostream>
#include "entreeSortie.h"
#include "chaine.h"




using namespace std;

bool Majuscule (const char a);


int main ()
{
char a;
ecrire(uneChaine("Saisir un caratere : "));
lire (a);
Majuscule(a);
}

bool Majuscule (const char a)
{

if ( a>= 'A' && a<= 'Z')
{
return(TRUE);
}
else
{
return(FALSE);
}
}





J'utilise code blocks comme IDE...


5 réponses

M.had Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
 
tu peux ajouter une variable booléenne par exemple: b=Majuscule(a);
et puis ecrire(b); ou bien cout<<b; pour afficher le résultat!
0
ubuntu i love you Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Ok, merci poour l'explication du booleen =)
Mais ça ne marche toujours pas.. Dans le sujet de l'exo on me demande d'utiliser une fonction Majuscule qui retourne un boooleen, mais lorsque j'excute, le resultat retourné est toujours 0 meme si c'est une Majuscule...
0
ubuntu i love you Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
(a>= 'A' && a<= 'Z') est ce que cette expression est bien correcte ou je me trompe?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Cette expression est correcte et renvoie true lorsque le caractère est une lettre majuscule sans accent, et false sinon.

Voici un petit programme de test. Attention : il affiche 0 et 1 à la place de false et true.

#include <iostream>

bool majuscule(const char a)
{
	return a>='A' && a<='Z';
}

int main()
{
	char a;
	
	while (true)
	{
		std::cout << "Saisir un caractere : ";
		std::cin >> a;
		std::cout << majuscule(a) << std::endl;
	}

	return 0;
}
0
ubuntu i love you Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
AH oui, merci bp, ça marche ! =)
Mais tu peux stp m'expliquuait ce qu'il y a de faux dans mon code? parce que je comprend pas...
Et "std ::cout" est ce que c'est equivalent a ecrire (parce que je connais pas...)?
Merci de ton aide
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Tout dépend de ce que fait ecrire (et lire).
Si ça t'affiche toujours 0 alors que majuscule est correct c'est que c'est ecrire qui est faux !

Regarde ton fichier EntreeSortie.h, je suppose que la méthode ecrire appelle std::cout qui est la manière standard d'écrire à l'écran en C++ (std pour standard), de même que ta méthode lire doit certainement utiliser std::cin.

Remarque : je ne l'ai pas utilisé mais quand on a using namespace std; on peut directement utiliser cout et cin, sans mettre les std:: devant.
0
ubuntu i love you Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
Merci bp, j'ai compris en fait, c'etait une bete erreur, j'avais simplement oublier d'afficher le resultat de la fonction avec ecrire(Majuscule(a)); Allala etourderie !
Merci de ton aide !
0

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

Posez votre question
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
En C++ true et false sont en minuscules, pas en majuscules.
Si tu comprends comment on fait un if, tu sais ce qu'est un booléen, puisque les conditions des if (et des while) sont des booléens.

De plus ça ne sert à rien de faire if (booleen) return true; else return false;
C'est strictement équivalent à return booleen;

Du coup tu auras :

bool Majuscule (const char a) 
{ 
    return (a>= 'A' && a<= 'Z');
}
-1