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 :

[Problème] Codage C++


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [Problème] Codage C++
    Bonjour et merci de prêter attention à ce topic;
    Je vais faire une courte description :
    je débute en C++ depuis quelques semaines et, j'ai tenté de créer mon propre programme console en C++ .Je ne recherche pas une correction simple.
    J'aimerais qu'il y ait des explications, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int mon_age //déclaration de la variable mon_age
    Cela me permettra de progresser plus rapidement.
    Voilà le 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include <iostream>
    #include <string.h>
    using namespace std;
     
    int main()
    {
        string mon_prenom ("");
        string mon_nom ("");
         int date_jour ("");
         int date_mois ("");
         int date_ans ("");
         int naissance_jour ("");
         int naissance_mois ("");
         int naissance_annees ("");
         int monage_jour ("");
         int monage_mois ("");
         int monage_annees ("");
        cout << "Bonjour et bienvenue sur le logiciel de DARKGUN\n";
        cout << "Veuillez indiquer votre prenom :" << endl;
        cin >> mon_prenom;
        cout << "Veuillez indiquer votre nom :" << endl;
        cin >> mon_nom;
        cout << "Veuillez indiquer le combien nous sommes aujourd'hui :" << endl;
        cin >> date_jour;
        cout << "Veuillez indiquer quel mois nous sommes en nombre aujourd'hui :" << endl;
        cin >> date_mois;
        cout << "Veuillez indiquer en quel annees nous sommes aujourd'hui :" << endl;
        cin >> date_mois;
        cout << "Veuillez indiquer votre jour de naissance en nombre :" << endl;
        cin >> naissance_jour;
        cout << "Veuillez indiquer votre mois de naissance en nombre :" << endl;
        cin >> naissance_mois;
        cout << "Veuillez indiquer votre annees de naissance :" << endl;
        cin >> naissance_annees;
     
        int monage_annees = date_ans - naissance_annees
        cout << "Donc tu as "<< monage_annees<< endl; // C'est un programme non terminé ,je veux qu'il donne l'age le jour et le mois de la personne exemple : Tu as 15 ans ,2 mois et 17 jours. 
        return 0;
    }
    Le problème c'est qu'il est rempli d'erreur et je n'arrive pas à les corrigés.
    Je vous remercie d'avance de votre soutien !

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Attention, utilise la balise code !

    Pour commencer, je te suggere de suivre l'indication dans le titre du forum : http://cpp.developpez.com/cours/?page=general

    Il te faut commencer avec le debut ! Je doute que tu sois arrive a ce resultat si tu as commence il y a quelques semaines le C++, ou alors pas avec les bases du C++ et un cours :/

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    D'accord , je suivrai tes indications et je suivrai des cours sur developpez.net , par ailleurs est ce que quelqu'un pourrai tous de même corriger mes erreurs ça serait gentil de sa part.
    Merci d'avance.

  4. #4
    Membre régulier
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2013
    Messages : 77
    Points : 107
    Points
    107
    Par défaut
    Bonjour,

    Alors tout d'abord tu as un problème dans la déclaration de variable de type int. En effet celles-ci sont de type entières donc pour les initialiser il faut une valeur entière (exemple 0).
    Ainsi au lieu d'indiquer une chaîne de caractères "" dans les paranthèses pour l'initialisation, il faut mettre une valeur:
    Ensuite, cin n'accepte par de string, il faut utiliser une chaine de caractère standard:
    A la ligne 36, tu redéclares la variable monage_annees.
    Une déclaration de variables (int monage_annees; ) ne se fait qu'une seule fois, ensuite tu peux utiliser la variable normalement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monage_annees = date_ans - naissance_annees;
    (Attention au point virgule!)

    Bon courage.
    Je t'encourage vivement à lire des tutoriaux aussi.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci, quand le logiciel sera terminé je vous le montrerai tous de même.
    PS : Merci de vos conseil

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Une dernière chose : Mon code viens d'avancer et n'a plus d'erreur mais il n'est pas terminé :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <iostream>
    #include <string.h>
    using namespace std;
     
    int main()
    {
        char mon_prenom[128];
        string mon_nom ("");
         int date_jour (10);
         int date_mois (10);
         int date_ans (10);
         int naissance_jour (10);
         int naissance_mois (10);
         int naissance_annees (10);
         int monage_jour (10);
         int monage_mois (10);
         int monage_annees (10);
        cout << "Bonjour et bienvenue sur le logiciel de DARKGUN\n";
        cout << "Veuillez indiquer votre prenom :" << endl;
        cin >> mon_prenom;
        cout << "Veuillez indiquer votre nom :" << endl;
        cin >> mon_nom;
        cout << "Veuillez indiquer quel jour nous sommes en nombre aujourd'hui :" << endl;
        cin >> date_jour;
        cout << "Veuillez indiquer quel mois nous sommes en nombre aujourd'hui :" << endl;
        cin >> date_mois;
        cout << "Veuillez indiquer en quel annees nous sommes aujourd'hui :" << endl;
        cin >> date_ans;
        cout << "Veuillez indiquer votre jour de naissance en nombre :" << endl;
        cin >> naissance_jour;
        cout << "Veuillez indiquer votre mois de naissance en nombre :" << endl;
        cin >> naissance_mois;
        cout << "Veuillez indiquer votre annees de naissance :" << endl;
        cin >> naissance_annees;
     
        monage_annees = date_ans - naissance_annees;
     
        cout << "Donc tu t'apelles "<< mon_prenom<< " "<<mon_nom<< " et tu as "<<monage_annees<<" ans !"<< endl; // C'est un programme non terminé ,je veux qu'il donne l'age le jour et le mois de la personne exemple : Tu as 15 ans ,2 mois et 17 jours.
        return 0;
    }
    Juste, à quoi sert le (10) des variables "int" ?

  7. #7
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par DARKGUN Voir le message
    Juste, à quoi sert le (10) des variables "int" ?
    Hello,

    le "(10)" initialise tes variables à 10, int date_jour (10); est équivalent à int date_jour = 10;.

    Et c'est pareil pour tes strings.

    Btw pourquoi un char [128] pour nom_prenom ? Un string comme pour nom_nom sera plus adapté. (Pas de limite à 127 caractères entre autres).

    edit: prend l'habitude d'include <string> au lieu de <string.h> aussi.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ok merci donc si j'ai bien compris le mieux pour mon_prenom c'est de le remettre en string ,si je mets y'a quoi qui change à part que sa valeur initiale est égale à 0 et dans tous les cas elle change de valeur après vu que dans la ligne 24 elle re-change de valeur.
    Si je comprends bien la variable qui est au début (date_jour) peut avoir une valeur aléatoire vu que dans tout les cas elle sera modifié par la suite ?

  9. #9
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Voila,

    Ici ça ne change rien, et tu peux même de ne pas l'initialiser ( int date_jour; ).

    edit:
    Citation Envoyé par alyma Voir le message
    Ensuite, cin n'accepte par de string, il faut utiliser une chaine de caractère standard:
    std::cin accepte bien un std::string. Le problème ici était surement la non inclusion de <string>.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ok et bien je vous remercie tous de votre rapidité

  11. #11
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par alyma Voir le message
    Bonjour,

    Ensuite, cin n'accepte par de string, il faut utiliser une chaine de caractère standard:
    Pas d'accord, cin travaille très bien en compatibilité avec les strings, le code était bon de ce point de vue.
    Le détail par contre est qu'il va arrêté de mettre la chaîne au premier espace trouvé. Si tu veux qu'il aille jusqu'au retour chariot, il te faut utiliser std::getline(cin, myString)
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  12. #12
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Le problème (avec la correction proposée par alyma), c'est que "flux >> buffer_de_caractères" est une des pires choses que l'on puisse écrire. C'est comme cela que l'on peut se prendre des buffers overflow, et ouvrir la porte aux injections de code.

    Pour que std::string soit incompatible avec cin, il faut inclure les mauvaises choses (genre <iostream.h> et <string> sous VC++6), ou oublier des std:: en chemin.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci , grace à vous regardez ce que j'ai réussi à faire :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    #include <iostream>
    #include <string>
    using namespace std;
     
    int main()
    {
        string mon_prenom("");
        string mon_nom ("");
         int date_jour;
         int date_mois;
         int date_ans;
         int naissance_jour;
         int naissance_mois;
         int naissance_annees;
         int monage_jour;
        cout << "Bonjour et bienvenue sur le logiciel de DARKGUN\n";
        cout << "Veuillez indiquer votre prenom :" << endl;
        cin >> mon_prenom;
        cout << "Veuillez indiquer votre nom :" << endl;
        cin >> mon_nom;
        cout << "Veuillez indiquer quel jour nous sommes en nombre aujourd'hui :" << endl;
        cin >> date_jour;
        cout << "Veuillez indiquer quel mois nous sommes en nombre aujourd'hui :" << endl;
        cin >> date_mois;
        cout << "Veuillez indiquer en quel annees nous sommes aujourd'hui :" << endl;
        cin >> date_ans;
        cout << "Veuillez indiquer votre jour de naissance en nombre :" << endl;
        cin >> naissance_jour;
        cout << "Veuillez indiquer votre mois de naissance en nombre :" << endl;
        cin >> naissance_mois;
        cout << "Veuillez indiquer votre annees de naissance :" << endl;
        cin >> naissance_annees;
     
        monage_jour = ((date_ans - naissance_annees)*365)-((12-date_mois)*30+date_jour);
     
        cout << "Tu t'apelles "<<mon_prenom<<" "<<mon_nom<<" et tu as vecu durant approximativement "<<monage_jour<<" jours !\n";
        return 0;
    }
    Bon,le code n'est pas vraiment terminé car je n'ai pas pris en compte les années bissextiles et le reste mais sinon quand pensez vous pour un début ?

  14. #14
    Membre averti
    Homme Profil pro
    Cadre informatique
    Inscrit en
    Avril 2013
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 183
    Points : 435
    Points
    435
    Par défaut
    Allez pour le fun (et si tu veux encore découvrir de nouvelles choses), essaye de trouver un cours sur les fonctions et d'en faire une pour calculer le nombre de jours que tu as vécu au lieu de le mettre dans le main

    Bonne chance

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Si j'ai bien compris tu veux que je fasse une fonction qui reprenne le code du main ?

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    salut,
    comme disait Bysbobo, tu peut créer une fonction, et comme c'est toi qui la crée, elle peut faire ce que tu veut !
    Dans ton cas tu peut très bien reprendre le main, en mettant dans ta fonction les saisie les variables et la calculs et appeler la fonction dans ton main.
    Sinon tu peut ajouter une fonction qui effectuera seulement le calcul, a partir des donnée saisie dans le main ( la fonction devra prendre ces variables saisies en paramètres).

    Si tu suit la deuxième méthode, tu peut imaginé plusieurs fonction, qui vont calculer différentes choses a partir des saisie et tu appellera plusieurs fonction dans ton main, mais après si ces calculs sont plus ou moins liée tu devra regarder du coter des classe

    Pour le moment je pense que lorsque tu aura vu comment créer une fonction tu verra tout de suite comment faire et tu aura surement d'autres idées

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

Discussions similaires

  1. [Encodage] Probléme codage en html
    Par hous04 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/05/2010, 23h44
  2. [WD12] Problème codage asynchrone
    Par rems033 dans le forum WinDev
    Réponses: 1
    Dernier message: 30/04/2009, 17h51
  3. Problème codage des caractères
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 14/11/2008, 18h02
  4. Problème codage des caractères
    Par webrider dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/06/2006, 21h32
  5. Problème codage régionale windows
    Par mickjack dans le forum Windows
    Réponses: 6
    Dernier message: 19/08/2005, 11h53

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