IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

[debutant] problémes pre compil!


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut [debutant] problémes pre compil!
    Bonjour, je débute en programmation c++ et j'ai rencontré un probleme avant de compiler mon programme. Habituellemen j'arrive à trouver les erreurs mais là je séche. Mon objectif est que apres une invite, l'utilisateur tape une lettre qui oriente entre 2 chemins différents. J'ai essaye for, if, mais au final j'ai pense que strncmp était plus adapté. Si vous avez des conseils n'hésitez pas, je suis ouvert à tout!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    char devises;
         cout << "Veuillez specifier si vous voulez convertir en euro ou en dollars, tapez e pour euro, d pour dollar : ";
         cin >> devises;
       char valable = "e";
       char ok = "d";
       //comparaison des chaines de char
       int strncmpeuro(devises, valable,1);
       int strncmpdollar(devises, ok,1);
     
       if (strncmpeuro==1)
       {   cout << "Veuillez entrer le montant en euros : ";
             double euro;
             cin >> euro;
             cout << "Votre montant en dollars : ";
             double repe = euro*(1/coursED);
             cout << repe <<endl;
    voila ma portion de code qui pose probléme, et voila les messages d'erreurs que j'obtiens :
    invalid conversion from `const char*' to `char' (pour l'attribution de "e" à valable et de "d" à ok)
    initializer expression list treated as compound expression (pour les 2 int strncmp)

    merci d'avance de m'aider!

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour
    que sont strncmpdollar et strncmpeuro ? des objets, des fonctions ? des entiers ?

    à mon avis, s'il sagit de fonctions (ou de méthodes) il faudrai plutôt faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       if (1==strncmpeuro(devises, valable,1))
       {   cout << "Veuillez entrer le montant en euros : ";
             double euro;
             cin >> euro;
             cout << "Votre montant en dollars : ";
             double repe = euro*(1/coursED);
             ...
    Pour t'aider plus efficacement, il nous faut connaitre strncmpdollar et strncmpeuro.
    Merci
    mabu

  3. #3
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Salut!

    Toute ces variables et paramètres de fonction sont ils vraiment utiles?
    Car ils alourdissent vraiment le code.

  4. #4
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Citation Envoyé par mabu
    que sont strncmpdollar et strncmpeuro ? des objets, des fonctions ? des entiers ?
    Des entiers? Impossible! Non?

  5. #5
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    signifie chaine de 1 caractere; elle est vue par l'ordi ainsi:
    \0 est le caractere de terminaison de chaine.
    Pour un simple char il faut mettre des simples quotes '':
    devrait marcher.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    d'abord, merci de vos réponses.
    J'ai essayé ce que vous m'avez dit mais ça ne change rien voire ça augmente le nombre d'erreur.

    pour les 2 fonctions, je les ai trouvés dans C++ pour les nuls :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     int strncmp(source1, source2, n)
    compare les n premiers caractères de deux chaînes. Retrourne 0 si les 2 chaînes sont identiques.

    Donc déja faut que je mette 0 et pas 1 dans la condition du if, mais ça ne change pas mon probléme.

    Je précise que j'ai éssayé aussi en gardant strncmp sans en modifier le nom, mais cela crée un conflit entre celui pour les euros et celui pour les dollars...

    Je sais pas si ça peut être utile, mais j'utilise Dev-C++

    ps : merci seriousme de me rappeller cela

  7. #7
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut Re: [debutant] problémes pre compil!
    Citation Envoyé par Erty2100
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //comparaison des chaines de char
       int strncmpeuro(devises, valable,1);
       int strncmpdollar(devises, ok,1);
     
       if (strncmpeuro==1)
       ...
    Ca ne ressemble a rien ce que tu essais de faire ici ! C'est syntaxiquement incorrect donc ca ne peut pas fonctionner !

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    peut tu être plus précis stp

  9. #9
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Pourquoi ne pas faire tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    char devises;
    cout << "Euro (e) ou dollars (d) : ";
    cin >> devises;
     
    if (strcmp(devises,'e'))
    {  
         //traitement pour les euros
    }
     
    else if (strcmp(devises,'d'))
          {
               //traitement pour les dollars
          }
          else
                //message d'erreur et retour au début

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    comment la condition if sait que c'est 0 qui doit être renvoyé, si on ne precise pas ==0?

    et ça ne semble pas marcher

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    en fait j'aimerais surtout savoir ce a quoi fait reférence ce message d'erreur svp : 15 C:\Dev-C++\essaies\correction2.cpp initializer expression list treated as compound expression

    merci

  12. #12
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par niglo
    Pourquoi ne pas faire tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strcmp(devises,'e'))
    Essai plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( ! strcmp(devises,'e'))
    Sinon, strcmp renvoi 0 si les deux chaines sont identiques. Documente toi sur une fonction avant de l'utiliser c'est plus simple.
    http://www.cplusplus.com/ref/cstring/strcmp.html

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    je l'ai modiié comme ça, c'est ce qui produit le moins d'erreur (1seule) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ( ! strncmp(lettre,char win='e',1))
    l'erreur est : expected primary-expression before "char"

    je pensais m'être documente, entre C++ pour les nuls et le cours de c++ sur developpez.com, j'ai bien regarde la fonction, mais le probléme c'est que j'ai aussi eut des erreurs qui me disais que je pouvais pas utiliser strncmp en tant que fonction...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    voila j'ai réussi à regler mon probléme, votre aide a été très apprécié, merci à tous!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     char devises;
         cout << "Veuillez specifier si vous voulez convertir des euro ou des dollars, tapez e pour euro, d pour dollar : ";
         cin >> devises;
     
     
       if (devises=='e' || devises=='d')
       {   if (devises=='e')
           {  cout << "Veuillez entrer le montant en euros : ";
             double euro;
             cin >> euro;
             cout << "Votre montant en dollars : ";
             double repe = euro*coursED;
             cout << repe <<endl;
           }
            else
           {   cout << "Veuillez entrer le montant en dollars : ";
             double dollar;
             cin >> dollar;
             cout << "Votre montant en euros : ";
             double repd = dollar*(1/coursED);
             cout << repd <<endl;        
            }
       }
       else
       {   cout<< "Vous n'avez pas tape e ou d! ";
       }
    merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Debutant]Problème de compilation en changeant de workspace
    Par SybVicious dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 28/07/2007, 13h47
  2. [Servlets][Debutant] Problème de compilation
    Par max44410 dans le forum Servlets/JSP
    Réponses: 23
    Dernier message: 01/09/2006, 14h31
  3. [Debutant(e)] problème de compilation
    Par toddy_101 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/02/2006, 20h58
  4. [Debutant(e)] problème de compilation
    Par toddy_101 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 20/02/2006, 20h54
  5. [DEBUTANT] [APPLET] Probléme aprés compilation !
    Par crazyman8 dans le forum Applets
    Réponses: 5
    Dernier message: 13/01/2006, 19h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo