RE: Aide C++, mon code ne fonctionne pas !!!

Calmar -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je travaille en C++ sur Code::Block, et il me signale un problème (ligne 23), mais j'ai beau relire mon code dans tous les sens, je n'en trouve aucun ! Aidez-moi :

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    string nomUtilisateur("sans nom"); 
    double ageUtilisateur(-1); 
    string villeUtilisateur("sans ville"); 

    cout << "Salut, bienvenue sur la plateforme d'echange C.A.L.M.A.R !!!" << endl<<endl<<"Comment t'apelles-tu ?"<<endl<<endl; 
    getline(cin, nomUtilisateur); 

    cout<<"Quel age as-tu ???"<<endl<<endl; 
    cin>>ageUtilisateur; 

    if (ageUtilisateur >= 18) 
    { 
        cout<<"Cool, tu es majeur, alors, ca fait quoi d'etre adulte ?!"<<endl<<endl<<"Continuons, tu t'apelle "<<nomUtilisateur<<" et tu as "<<ageUtilisateur<<" ans !!!"<<endl; 
        cout<<"Ou abites-tu ???"<<endl; 
        getline(cin, villeUtilisateur); 

        if (villeUtilisateur==France) 
        { 
            cout<<"Non, la ville !!!"<<endl<<endl; 
        } 
        else 
        { 
            cout<<"A "<<villeUtilisateur<<" ,c'est en france, non ???"<<endl<<endl; 
        } 

    } 
    else 
    { 
        cout<<"Domage, pour continuer, il faut etre majeur !!!"<<endl<<"Ce sera pour la prochaine !!!"<<endl<<endl; 
    } 

    return 0; 
}


Merci d'avance !

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il faudrait plutôt faire if (villeUtilisateur.compare("France")==0)
L'opérateur string::operator== n'est pas défini, donc utiliser == revient à comparer deux pointeurs...
2
Calmar
 
Peux-tu éclairer ma lanterne, je suis débutant en C++ , pourquoi un ".compare" !
Merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Un .compare car villeUtilisateur est un objet de type string et que la méthode de comparaison est la méthode de comparaison de deux objets string...
En fait j'aurais presque envie de dire, pourquoi un "==" ? Ça n'a pas vraiment de sens...
Remarque : si tu débutes en C++ peut-être connais-tu un peu le C, c'est pareil, == ne fonctionne pas, il faudrait utiliser strcmp...
0
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
Quel est le problème signalé (et où se trouve la ligne 23 aussi) ?
0
Calmar
 
C'est celle ci:
if (villeUtilisateur==France)
0
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
Ok merci! bon j'aurais bien aimé voir aussi ce que disait le compilateur mais à mon avis nicocorico a raison !^^
0
nicocorico Messages postés 799 Date d'inscription   Statut Membre Dernière intervention   138
 
Je connais quasi rien au C, mais t'aurais pas un problème sur 'France', que tu donnes comme une variable au lieu d'une string constante?
0