Problème avec mes variables (C++)
Utilisateur anonyme
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je vais commencer en disant que cela fait quoi, 5 ans que je n'ai pas programmé, c'est donc peut-être une petite niaiserie. Donc, voici mon problème : Mon programme me dit que j'aurais un problème avec mes variables et avec mes conditions IF (le ==). Voici mon code (lisez les commentaires dans mon programme, c'est là que je crois qu'il y a des problèmes.) :
// pour les include, je sais que j'en ai trop pour rien, mais je m'habitue à les insérer pour ne pas les oublier plus tard
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
void main ()
{
/*Mes variables, je les ai essayé de la façon suivante, j'ai essayé avec string et int et rien ne foncitonne (comme j'ai dit, je suis rouillé, donc c'est peut-être juste une petite erreur)
char nom[30];
char etat[10];
char raison[10];
cout << "Bonjour, quel-est votre nom?" << endl;
cin >> nom;
cout << endl;
cout << "Hey bien, bonjour " << nom << "Comment allez-vous?" << endl;
cin >> etat;
//à partir d'ici, on dirait qu'il y a un problème aussi, comme si mon == ne fonctionne pas.)
if (etat=="bien")
{
cout << "Cool, pourquoi vous allez bien ainsi?" << endl;
cin >> raison;
if (raison=="parce que")
cout << "Vous pouvez me parler, mais je dois partir, au revoir!" << endl;
else
cout << "Ah, au revoir" << endl;
}
else
{
cout << "Ahh, mais que ce passe--il??" << endl;
cin >> raison;
if (raison=="rien")
cout << "Vous ne voulez pas parler, donc je vais y aller" << endl;
else
cout << "Ahhh, c'est triste :(" << endl;
}
system ("pause");
return 0;
}
Merci
Max
Je vais commencer en disant que cela fait quoi, 5 ans que je n'ai pas programmé, c'est donc peut-être une petite niaiserie. Donc, voici mon problème : Mon programme me dit que j'aurais un problème avec mes variables et avec mes conditions IF (le ==). Voici mon code (lisez les commentaires dans mon programme, c'est là que je crois qu'il y a des problèmes.) :
// pour les include, je sais que j'en ai trop pour rien, mais je m'habitue à les insérer pour ne pas les oublier plus tard
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
void main ()
{
/*Mes variables, je les ai essayé de la façon suivante, j'ai essayé avec string et int et rien ne foncitonne (comme j'ai dit, je suis rouillé, donc c'est peut-être juste une petite erreur)
char nom[30];
char etat[10];
char raison[10];
cout << "Bonjour, quel-est votre nom?" << endl;
cin >> nom;
cout << endl;
cout << "Hey bien, bonjour " << nom << "Comment allez-vous?" << endl;
cin >> etat;
//à partir d'ici, on dirait qu'il y a un problème aussi, comme si mon == ne fonctionne pas.)
if (etat=="bien")
{
cout << "Cool, pourquoi vous allez bien ainsi?" << endl;
cin >> raison;
if (raison=="parce que")
cout << "Vous pouvez me parler, mais je dois partir, au revoir!" << endl;
else
cout << "Ah, au revoir" << endl;
}
else
{
cout << "Ahh, mais que ce passe--il??" << endl;
cin >> raison;
if (raison=="rien")
cout << "Vous ne voulez pas parler, donc je vais y aller" << endl;
else
cout << "Ahhh, c'est triste :(" << endl;
}
system ("pause");
return 0;
}
Merci
Max
A voir également:
- Problème avec mes variables (C++)
- Vba range avec variable - Forum Bureautique
- Bash addition 2 variables ✓ - Forum Shell
- Dans son restaurant, igor utilise une application pour gérer les réservations. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « reservations » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Webmastering
- Associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Logiciels
- Amandine utilise une application pour gérer les inscriptions aux activités de son club. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « inscriptions » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Loisirs / Divertissements
6 réponses
Bonjour
Effectivement, deux tableaux de char (car ce ne sont pas des classes String) se comparent avec la fonction strcmp, pas avec ==
Effectivement, deux tableaux de char (car ce ne sont pas des classes String) se comparent avec la fonction strcmp, pas avec ==
ok, je viens de faire un changement et la, ca fonctionne. MAIS, car il y a un gros mais, lorsque je demande comment ca va, que je répond bien ou mal, ca me menne au else (Ahh, mais que ce passe-t-il).
max
max
la fonction strcmp renvoie 0 quand les chaines de charactère sont identiques, et quelque chose d'autre quand c'est différent
if (raison=="rien")
=>
if (!strcmp(raison,"rien"))
c'est un peu le piège cette fonction ;)
if (raison=="rien")
=>
if (!strcmp(raison,"rien"))
c'est un peu le piège cette fonction ;)
Tu as peut-être inversé la condition, mais ça devrait quand même changer entre "bien" et "mal".
Je ne connais pas le C++, mais cin ne garderait-il pas un caractère de fin de fin de ligne ?
après ton cin >> etat; , ajoute cout<< strlen(raison) pour voir si tu as bien le nombre de caractères attendu
Je ne connais pas le C++, mais cin ne garderait-il pas un caractère de fin de fin de ligne ?
après ton cin >> etat; , ajoute cout<< strlen(raison) pour voir si tu as bien le nombre de caractères attendu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question