Condition C++ ne marche pas
Résolu
jobertomeu
Messages postés
1189
Date d'inscription
Statut
Membre
Dernière intervention
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je viens tout juste de lire un petit tuto sur le C++, mais le problème est que j'ai un problème avec les conditions, en C, pour faire une condition, ça donne un truc comme ça :
Je tiens a préciser, que le compilateur de m'indique aucune erreur, mais lorsque j'execute le programme, et que j'arrive au stade ou je demande le niveau, que je mette un mot comme "bon" ou "DSDSDSDS", il m'affiche toujours les instructions contenues dans le Else.
Merci de me dire ce qui ne va pas, je viens tout juste de le voir, donc, si il ya quelque chose qui m'échappe, n'hésitez pas a me le dire.
je viens tout juste de lire un petit tuto sur le C++, mais le problème est que j'ai un problème avec les conditions, en C, pour faire une condition, ça donne un truc comme ça :
char pseudo[20]; printf("Votre pseudo : "); scanf("%s", &pseudo); if (pseudo == 'truc') { printf("D'accord, acces accorde"); } else{ printf("Acces non accorde"); } </code Mais, en C++, ça ne marche pas :'( Voila mon code : <code> #include <iostream> using namespace std; int main() { char pseudo[50]; int age; char niveau[15] = "nul"; int reboot = 0; cout << " ---------- Le Grand test de l'informatique ---------- " << endl; cout << " *********** Dans une console - Pour les pros aux newbies *********** \n\n\n" << endl; cout << "Pour commencer, Vous devrez repondre a differentes etapes pour choisir votre\nniveau de difficultee. A Chaque niveau gagne, un code niveau vous sera donnne, \nmarquez le bien, il vous servira a acceder au niveau dans lequel vous etiez\npour reprendre au meme stade. Suivez bien les etapes, remplissez les bien\nmiticuleusement et Bonne chance a tous !!!\n\n" << endl; system("PAUSE"); // ETAPE 1 system("CLS"); cout << " * Etape 1 * \n\n\n" << endl; cout << "- Entrer votre Pseudo :" << endl; cin >> pseudo; cout << "\n!!!!!!!!!!!! Bienvenue " << pseudo << " !!!!!!!!!!!! \n\n" << endl; cout << "- Quel avez vous ?" << endl; cin >> age; cout << "\nPseudo : " << pseudo << " - Age : " << age << " ans " " - donnees enregistrees. \n\n" << endl; system("PAUSE"); // ETAPE 2 while (reboot = 1) { system("CLS"); cout << " ** Etape 2 ** \n\n\n" << endl; cout << "Comment califiriez vous votre niveau en informatique ? ( nul, mauvais, moyen, bon, tres bon, excellent, ultime ) : " << endl; cin >> niveau; if (niveau == "nul" || niveau == "Nul" || niveau == "mauvais" || niveau == "Mauvais" || niveau == "bon" || niveau == "Bon" || niveau == "tres bon" || niveau == "Tres bon" || niveau == "excellent" || niveau == "Excellent" || niveau == "ultime" || niveau == "Ultime" ) { cout << "rentre dans les grands ifs =) \n\n" << endl; reboot = 0; system("PAUSE"); } else { cout << "L'adjetif rentre n'a pas ete reconu par le moteur, veuillez reessayer. " << endl; reboot = 1; system("PAUSE"); } } cout << " Reussi ! " << endl; system("PAUSE"); return 0; }
Je tiens a préciser, que le compilateur de m'indique aucune erreur, mais lorsque j'execute le programme, et que j'arrive au stade ou je demande le niveau, que je mette un mot comme "bon" ou "DSDSDSDS", il m'affiche toujours les instructions contenues dans le Else.
Merci de me dire ce qui ne va pas, je viens tout juste de le voir, donc, si il ya quelque chose qui m'échappe, n'hésitez pas a me le dire.
A voir également:
- Condition C++ ne marche pas
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Nbval avec condition ✓ - Forum Excel
- Je ne suis pas un robot confidentialité - conditions - Forum Facebook
- Condition optimale téléphone ✓ - Forum Mobile
3 réponses
if (pseudo == 'truc') n'est pas faux mais ne fait certainement pas ce que tu attends de cette instruction.
En C, la chaîne de caractère n'existe pas en tant que type de variable, la comparaison est donc impossible. Pour obtenir cette fonctionnalité, il est nécessaire d'utiliser une fonction de type 'strcmp' qui permet de comparer deux chaînes de caractères. Je te laisse le soin de rechercher son prototype.
Bonne continuation.
En C, la chaîne de caractère n'existe pas en tant que type de variable, la comparaison est donc impossible. Pour obtenir cette fonctionnalité, il est nécessaire d'utiliser une fonction de type 'strcmp' qui permet de comparer deux chaînes de caractères. Je te laisse le soin de rechercher son prototype.
Bonne continuation.
Oui, j'ai trouvé hier soir vers 1h... C'est exactement j'ai trouvé la syntaxe et ça marche !
Merci de ta réponse quand même ;)
Au fait, par hasard, tu ne saurais pas comment on dit "entre" pour une condition, je voudrais faire ça :
si la variable niveauc est entre 5 et 8, alors ... parce que, je connais les symboles <, > <=, >= ==, != mais je ne connais pas pour dire "entre ça et ça" .....
Merci ;)
Si tu ne sais pas, je posterais sur le forum, mais c'est pour ne pas l'encombrer ;)
Merci de ta réponse quand même ;)
Au fait, par hasard, tu ne saurais pas comment on dit "entre" pour une condition, je voudrais faire ça :
si la variable niveauc est entre 5 et 8, alors ... parce que, je connais les symboles <, > <=, >= ==, != mais je ne connais pas pour dire "entre ça et ça" .....
Merci ;)
Si tu ne sais pas, je posterais sur le forum, mais c'est pour ne pas l'encombrer ;)
Si tu avais trouvé toi-même une réponse à ton problème, c'est bien... mais il eût été plus correct de le signaler immédiatement afin de ne pas faire perdre de temps (oh combien précieux!) à ceux qui ont cherché à t'aider.
5 < A <= 8 s'écrit simplement: (A > 5) && (A <= 8).
N'oublie pas de mettre en résolu. Merci.
5 < A <= 8 s'écrit simplement: (A > 5) && (A <= 8).
N'oublie pas de mettre en résolu. Merci.
Oui, je sais, mais je voulais le mettre ce matin, et finalement, je suis parti de chez moi ...
Merci pour tout ! Sujet résolu !!
Merci pour tout ! Sujet résolu !!
pour t'éviter ces tracas, et vu que tu fais du C++, utilises plutôt les string ! avec un #include <string> au début.
Tu les utilises exactement comme les chaines en C (avec cout et cin), sauf que tout ce qui est compliqué est plus simple. Ensuite, si pour une fonction tu as besoin d'un paramètre "char*" (une chaine type C), il y a la méthode cStr() ou un truc du genre.
Tu les utilises exactement comme les chaines en C (avec cout et cin), sauf que tout ce qui est compliqué est plus simple. Ensuite, si pour une fonction tu as besoin d'un paramètre "char*" (une chaine type C), il y a la méthode cStr() ou un truc du genre.