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 :

[std::stringstream] lui faire avaler des struct


Sujet :

SL & STL C++

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut [std::stringstream] lui faire avaler des struct
    salut,

    j 'aimerais ecrire une structure (ses champs quoi) dans un std::stringstream.

    Comment faire ca le plus proprement possible. Sachant que j ai plein de structures differentes et que j 'ai pas trop envie d'avoir un mechanisme different pour chaqune.

    actuellement j ai ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	std::stringstream l_Stream;
    	l_Stream << reinterpret_cast<const char*>(&m_ProgramHeader);

  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
    Definir un operator<< pour chacune d'elles.

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Definir un operator<< pour chacune d'elles.
    je sais pas si c'est une bonne idée...

    je devrais pour chaque type de structure definir un operateur <<

    et en plus je ne sais pas comment definir un operateur pour une strucure ( mais ca c'est pas important)

  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
    Tu souhaites faire une écriture formattée (du texte) ou brute (des bits) ?

    et en plus je ne sais pas comment definir un operateur pour une strucure ( mais ca c'est pas important)
    http://c.developpez.com/faq/cpp/?pag...teur_affichage

  5. #5
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    Citation Envoyé par Laurent Gomila
    Tu souhaites faire une écriture formattée (du texte) ou brute (des bits) ?
    texte Monsieur SVP

  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
    Ok, donc la FAQ répondra à ta question

  7. #7
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    alors si dans definition de classe qui contiendrais toute les structures,

    je pourrais mettre autant de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    friend std::ostream& operator <<(std::ostream&, const MaStruct1&);
     
    friend std::ostream& operator <<(std::ostream&, const MaStruct2&);
     
    friend std::ostream& operator <<(std::ostream&, const MaStruct3&);
    que je veux...?

  8. #8
    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
    Bien sûr. Il en faut une par structure que tu veux pouvoir injecter dans ton flux.

  9. #9
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    dernière question : (promis juré)

    ma definition de structure se trouve hors d une classe dans un .h rien que pour les structures.

    Il est evidant que la definition de l'operateur doit se trouver au meme endroit que celle de la structure est que la visibilité de la structure doit etre egal a celle de l'operateur. Comment pourrais-je le declarer inline (enfin dans le .h quoi) ?

  10. #10
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    inline std::ostream& operator<<(std::ostream& os, MyStruct const& s) 
    {
       ...
       return os;
    }

  11. #11
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    merci à tous, specialement bcp à LG. et à JMB pour le patience de tout les jours!!!

  12. #12
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Si tu veux avoir le même mécanisme pour plusieurs structures, tout en ayant des petites différences à l'implémentation, tu peux créer une classe mère dont dériveraient toutes tes structures.
    Ensuite, les bonnes fonctions membres seraient appelées par polymorphisme...

    Ca te fait une interface commune pour toutes tes structures. Je sais pas si c'est ce que tu cherches, mais il faut en général chercher au maximum à factoriser les comportements communs!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/04/2015, 18h06
  2. [VB.NET] Débutant / Faire clignoter des carrés.
    Par djmcg dans le forum Windows Forms
    Réponses: 6
    Dernier message: 21/01/2005, 19h36
  3. JSP: faire apparaitre des données ...
    Par LeDébutantJava dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/06/2004, 16h21
  4. ClassWizard --> comment lui faire reconnaitre mes classes
    Par bigboomshakala dans le forum MFC
    Réponses: 6
    Dernier message: 06/05/2004, 10h50
  5. Réponses: 5
    Dernier message: 08/03/2004, 10h28

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