Bonjour à tous, j'ai un souci de débutante.
Je n'arrive pas à retrouver mon erreur dans mon programme.
Quand je saisis "samedi", l'ordinateur devrait me répondre "vive le week-end", mais il a envie que je travaille tous les jours, alors il me répond "vive le boulot".
Merci d'avance
voici mon code :
#include <iostream>
using namespace std;
int main (){
enum jours {lundi, mardi, mercredi, jeudi,vendredi, samedi, dimanche};
char aujourdhui ;
cout <<"Quel jour sommes-nous aujourd'hui ?";
cin >> aujourdhui;
if (aujourdhui == samedi || aujourdhui == dimanche)
cout << "vive le week-end !"<< endl;
else cout<<"vive le boulot !";
return 0;
}
Il va falloir que tu oublies le type énuméré dans ce cas, et que tu travailles avec des std::string.
(Après, si tu le désires, tu pourras faire 7 tests pour obtenir l'énumé correspondant à la chaine saisie)
Il va falloir que tu oublies le type énuméré dans ce cas, et que tu travailles avec des std::string.
(Après, si tu le désires, tu pourras faire 7 tests pour obtenir l'énumé correspondant à la chaine saisie)
Il a raison, le problème est que tu compare un caractère avec un une valeur entière.
Si on entre le mot "dimanche" par exemple, cin va récupérer le premier caractère pour le transmettre à la variable 'aujourdhui' (parce que 'aujourdhui' est un 'char' et pas un 'char[]' ou 'char*') c'est à dire 'd' qui a pour valeur 100. Puisque 'dimanche' vaut 6 et 'aujourdhui' vaut 100 le if ne s'execute pas.
Ce que lgmhs suggère est de faire est d'utliser le type std::string de <string> parce que l'operateur '==' est surchargé.
EDIT: grillé.
débutante : cout cin
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html