Utilisation d'un enum pour un flag
Bonjour.
Je voulais faire usage d'un enum pour contenir et faire afficher l'état d'un flag, mais je n'obtiens pas le résultat recherché !
Code:
1 2 3 4 5 6 7
|
enum sortie_capteur{Tc_K_ON, Pyro_ON};//crétaion du type
sortie_capteur capteur_en_service = Tc_K_ON;//création et initilaisation de mon flag de type sortie_capteur
code modifiant la valeur de capteur_en_service
.
.
cout << "Capteur en service : " << capteur_en_service << endl; |
cela affiche :
Capteur en service : 0
ou
Capteur en service : 1
En fait, si je comprends bien, le code fait bien ce que je lui demande, mais pas ce que je voudrais.
Ce que je voudrais c'est afficher :
Capteur en service : Tc_K_ON
ou
Capteur en service : Pyro_ON
Comment faire celà ?
utilisation enum pour un flag
Salutations j'ai peut-être une solution pour toi. Il faudrait tout simplement que tu redéfinisses l'opérateur << et que tu utilises la notation constexp.
Je te joins un programme d'exemple.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include <iostream>
enum Metal
{
Cuivre,
Fer,
Bronze
};
std::ostream& operator<<(std::ostream &os, Metal m)
{
static constexpr const char *noms[] =
{
"Cuivre", "Fer", "Bronze"
};
return os << noms[m];
}
Metal m = Metal::Cuivre;
int main()
{
std::cout << m << std::endl;
} |
En espérant que ça t'aide ! :)
Je te joins le lien de mon chic prof pour t'aider à comprendre : https://h-deb.clg.qc.ca/Sujets/AuSec...ndre-enum.html
Il y a surement une solution plus simple mais celle ci marche ! :)