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 :

Programme test de condition


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 51
    Par défaut Programme test de condition
    Je vous explique : dans un programme je demande l'age de l'utilisateur, si il et majeur, bienvenue vous est majeur s'affiche. Si il est pas majeur je souhaiterai que le programme redemande l'age de l'utilisateur. Donc reparte au debut de la fonction main() mais c'est là ou je n'arrive pas !

    Voici mon code :
    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
    27
    28
    #include <iostream>
    using namespace std;
     
     
     
    int Utilisateur(int ageUtilisateur)
    {
        if(ageUtilisateur>18)
        {
            cout << "bienvenue vous est majeur";
        }
     
        else
        {
            return main();
        }
    }
     
    int main()
    {
        int age(0);
     
        cout << "Quel age avez vous ?" << endl;
        cin >> age;
     
        Utilisateur(age);
     
    }
    Voici les erreur qui s'affiche.

    C:\Users\alex\Desktop\c++\boucles\main.cpp||In function 'int Utilisateur(int)'
    C:\Users\alex\Desktop\c++\boucles\main.cpp|15|error: 'main' was not declared in this scope|
    C:\Users\alex\Desktop\c++\boucles\main.cpp|17|warning: control reaches end of non-void function [-Wreturn-type]|
    ||=== Build finished: 1 errors, 1 warnings (0 minutes, 0 seconds) ===|


    merci pour votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    l'erreur n'est-elle pas assez explicite ?
    error: 'main' was not declared in this scope
    Ta façon de faire est vraiment très mauvaise.
    http://cpp.developpez.com/faq/cpp/?p...#SL_cin_verify
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 871
    Par défaut
    Je complete la remarque de Bousk par celle-ci :

    On ne rappelle JAMAIS la fonction main !

    Pour ce qui est de redemander l'age de l'utilisateur si ce dernier n'est pas majeur, il te suffit de faire une boucle avant ton affichage qui demande de rentrer l'age avec pour condition si l'age est superieur a 0.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 51
    Par défaut
    merci pour vos conseils, je me doutais qui il y avait une boucle, je vais voir tout ça.

  5. #5
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par défaut
    Effectivement, l'appelle de Main est juste pas possible.
    tu écris ton main comme ca:
    Le compilateur va l'écrire comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char*[] argv)
    donc dans tout les cas ut ne peux pas appeler main car tu n'as pas les paramètres et même si c'est le cas on te pendrais à l'entré de ta boite pour ça

    tu veux faire un cin tant que tu l'ages est inférieur à 18 alors tu fais une boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int age(); //par default c'est 0 pas besoin que tu le mettes toi.
    do
    {
        cin >> age;
    }while(age<=18)

  6. #6
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 871
    Par défaut
    Citation Envoyé par Astraya Voir le message
    Effectivement, l'appelle de Main est juste pas possible.
    tu écris ton main comme ca:
    Le compilateur va l'écrire comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char*[] argv)
    donc dans tout les cas ut ne peux pas appeler main car tu n'as pas les paramètres et même si c'est le cas on te pendrais à l'entré de ta boite pour ça
    Je ne pense pas que ca change grand chose. Le seul probleme sera que la fonction main n'est pas declaree avant son appel dans la fonction Utilisateur().

    Citation Envoyé par Astraya Voir le message
    tu veux faire un cin tant que tu l'ages est inférieur à 18 alors tu fais une boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int age(); //par default c'est 0 pas besoin que tu le mettes toi.
    do
    {
        cin >> age;
    }while(age<=18)
    T'es sur que c'est initialise a 0 si on le precise pas ? Dans tous les cas c'est une excellente habitude de bien initialiser ses variables. Trop d'erreurs surviennent de ces "oublis".

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

Discussions similaires

  1. Compilateur test des conditions dans un if
    Par BenoitM dans le forum Framework .NET
    Réponses: 4
    Dernier message: 03/10/2007, 10h07
  2. [Htaccess] - Tests et conditions
    Par Samyhijodelaluna dans le forum Apache
    Réponses: 11
    Dernier message: 17/07/2007, 15h34
  3. structure d un test de condition avec ?
    Par *alexandre* dans le forum Langage
    Réponses: 4
    Dernier message: 11/12/2006, 10h56
  4. Unordered list , test et condition d'arret
    Par NeHuS dans le forum ASP
    Réponses: 2
    Dernier message: 23/05/2006, 15h13
  5. [Débuter] Programmation objet mais conditions particulières
    Par KaptainouK dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 30/09/2005, 00h20

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