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

SL & STL C++ Discussion :

Demande précision ostream vs. ofstream ?


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Par défaut Demande précision ostream vs. ofstream ?
    Bonjour

    J'ai récupéré une classe permettant d'écrire une log.

    Le membre central de cette classe est un objet ostream.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class TraceLog
    {
    private:
    
    	//! true if stream is valid, false otherwise 
    	bool _valid_stream;
    
    	//! output stream
    	ostream* _logstream;
    
    	//! singleton of TraceLog
    	static TraceLog* _single_instance;
    }
    Je ne comprend pas très bien l'utilisation des flux mais voici ce que je pense avoir compris ;
    - ostream est objet assez générique qui peut pointer vers plusieurs support : fichier, sortie standard, string...
    - Ce choix offre donc une plus grande souplesse.

    Question :
    - Moi je veux y brancher un fichier, comment faire pour récupérer les fonctions permettant de manipuler un fichier (notamment close( )), sachant que rdbuf( ) renvoi un streambuf et qu'il faudrait un filebuf.
    - j'ai bien essayé de caster le streambuf mais j'ai alors une erreur de compile

  2. #2
    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
    Pourquoi as-tu besoin de récupérer le flux par la suite ? Normalement tu le crées, tu le passes au logger, et puis tu ne t'en occupes plus. Si tu as des opérations spécifiques à faire dessus alors stocke le séparément sous forme de ofstream.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Par défaut
    L'utilisateur peut changer le nom du fichier de log via l'IHM de l'appli.

    J'aimerai donc pouvoir fermer le premier fichier Log avant d'en ouvrir un autre

  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
    Qui doit gérer la durée de vie du flux de log, le logger ou toi ? En d'autre termes est-ce que le logger ne fait que pointer vers un flux, ou bien c'est lui qui crée / détruit le flux ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Par défaut
    En fait je créé un objet Log, puis appel une fonction init(..) qui passe le pointeur de flux à l'objet Log.
    Donc c'est moi qui ai créé le flux.
    En l'occurence je créé un ofstream casté en ostream

  6. #6
    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
    Donc tu stockes de toute façon l'instance de ofstream en dehors du logger. Donc elle devrait être accessible au moment où tu veux ouvrir un autre fichier non ?

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 26/08/2011, 22h02
  2. [C++] Demande précision sur Pattern Factory
    Par Aspic dans le forum C++
    Réponses: 36
    Dernier message: 25/08/2011, 12h40
  3. [MySQL] Demande précisions sur LOCK TABLE
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/04/2011, 13h49
  4. demande de précision et d info
    Par cm16 dans le forum Windows
    Réponses: 7
    Dernier message: 11/01/2006, 11h08
  5. Demande de précisions sur Backup/Restore et transactions
    Par lio33 dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 16/11/2005, 12h08

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