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 :

[débutant]Pb de structure du programme


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par défaut [débutant]Pb de structure du programme
    J'ai fais pendant un an des applications C++ graphiques avec un RAD et n'étant pas satisfais par ma compréhension du language je reviens aux bases. Et je galère pour gérer tout seul la structure d'un programme sensé lire/écrie dans un fichier texte (j'essaie de me familiariser avec les class).
    Voici mon fichier.h :
    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
    #ifndef FICHIER_H
    #define FICHIER_H
     
    #include <string>
     
    class Fichier
    {
    public:
           Fichier(); //constructeur
           //déclaration des variables
           std::string strPath;
           std::string strMsg;
           //déclaration des fonctions
           void lecture(const std::string& strPath);
           void ajouter(const std::string& strPath, const std::string strMsg);
     
           ~Fichier(); //destructeur
    };
    #endif
    Et mon fichier.cpp
    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
    41
    42
    43
    #include <string>
    #include <fstream>
    #include <iostream>
     
    #include "fichier.h"
     
    using namespace std;
     
    void Fichier::lecture(const std::string& strPath);
    {
         ifstream fichier(strPath);
     
         if(fichier)
         {
               string ligne;
               while(getline(fichier, ligne))
               {
                      cout << ligne << "\n";
               }
         }                                   
    }
     
    void Fichier::ajouter(const std::string& strPath, const std::string strMsg);
    {
         //ajoute une ligne de commentaire au log
     
         ofstream fichier(strPath, ios_base::app);
         fichier << strMsg << "\n";
    }
     
    int main()
    {
        char command[2];
        cin >> command;
        if(command == 'l')
        {
              string strPath;
              cout << "entre le path du fichier :\n";
              cin >> strPath;
              Fichier::lecture(strPath);
        }
        return 0;
    }
    Pour le moment j'utilise seulement la fonction de lecture et lorsque je compile, il me dit, parmi d'autres erreurs, que la déclaration des fonctions Fichier::ajouter et Fichier::lecture à l'extérieur n'est pas une définition.

    Evidement je n'y comprend rien.

    Quelqu'un pourrait mettre en évidence mes erreurs ?

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut Re: [débutant]Pb de structure du programme
    J'ai pas le temps de tout commenter. Ton problème est que les ; à la fin
    des deux lignes suivantes sont de trop.
    Citation Envoyé par Tymk
    Et mon fichier.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void Fichier::lecture(const std::string& strPath);
    {
    ...
    }
    void Fichier::ajouter(const std::string& strPath, const std::string strMsg);
    {
    ...
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par défaut
    Désolé, je pensais être à l'abri de ce genre d'erreurs.

    Maintenant ce sont les fonctions ifsteam et ofstream qui ne sont pas déclarés correctement.
    Je pense que ça vient du "using namespace std;"

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Maintenant ce sont les fonctions ifsteam et ofstream qui ne sont pas déclarés correctement.
    Leurs constructeurs prennent des const char* en paramètre, pas des std::string directement.

  5. #5
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Pourquoi n'y a-t-il qu'un if(...) et pas d' else?
    J'en profite pour poser une petite question:
    si il a dans son .cpp un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using namespace std;
    ne s'applique-t-il qu'au .cpp et pas au .h???

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par reggae
    J'en profite pour poser une petite question:
    si il a dans son .cpp un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using namespace std;
    ne s'applique-t-il qu'au .cpp et pas au .h???
    L'inclusion est générée par le préprocesseur et comme tout ce qui concerne le préprocesseur, c'est indépendant du reste du langage. Donc la directive using s'applique à partir de l'endroit où elle se trouve et dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include "foo.h"
    using namespace std;
    #include "bar.h"
    elle s'applique à bar.h mais pas à foo.h. De même si tu mets une telle directive dans un en-tête, elle s'appliquera à tout ce qui suit, même si c'est dans d'autres en-têtes.

  7. #7
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Merci ok

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    309
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 309
    Par défaut
    Je reviens sur ce post oublie pour vous informer que la structure des programmes n'a plus de secrets pour moi maintenant.

    Merci

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

Discussions similaires

  1. Conseils sur structure de programme
    Par RR instinct dans le forum Langage
    Réponses: 6
    Dernier message: 21/09/2006, 14h44
  2. [débutant] Comment arréter "proprement" son programme
    Par Anthony17 dans le forum Delphi
    Réponses: 3
    Dernier message: 18/05/2006, 11h49
  3. Réponses: 7
    Dernier message: 27/09/2005, 10h38
  4. [Débutant] [Thread] Faire patienter un programme java....
    Par yoxx dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 25/09/2005, 12h36
  5. Font , Xml & structure de programme .
    Par Clad3 dans le forum XML
    Réponses: 11
    Dernier message: 30/03/2005, 22h45

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