I/O fileStram [c++]

Voir le sujet précédent Voir le sujet suivant Aller en bas

I/O fileStram [c++]

Message  didi le Ven 16 Mar 2012, 18:40

bonsoir

ça fait une semaine que je cherche comment peut on lire ET écrir les Objets qui contienent
aussi des Objets comme attributs (Objet complex ..?? ) en BINAIRE
car dans projet j'ai une class History qui un attributs de type pile de Partie d'Othello

(en java on a Object in/out putstream pour lire les objets qui se trouve dans un fichier ) mais en c ++ ...?
si je doit lire et écrire les Objets complex en mode text ( char ) je doit redefinir les operateurs >> ET << pour toutes les classes
il me parait un peu lourd ...



voila les liens que je trouvé
http://stackoverflow.com/questions/2046829/write-and-read-object-of-class-into-and-from-binary-file
http://www.boost.org/doc/libs/1_41_0/libs/serialization/doc/tutorial.htmlhttp://www.parashift.com/c++-faq-lite/serialization.html
http://stackoverflow.com/questions/5126247/writing-and-reading-objects-with-virtual-methods-to-a-binary-filehttp://www.cplusplus.com/forum/general/32639/http://www.functionx.com/cpp/articles/serialization.htmhttp://www.cplusplus.com/forum/beginner/32200/http://www.cplusplus.com/forum/beginner/30826/#msg167067ici aussihttp://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=129

et j'ai même essayé avec les method
pour un Joueur
Code:

void read(ifstream *is)   {
      is->read((char *)this,sizeof this);
      if (is->fail())
              cout << "read failed" << endl;
   }

void write(ofstream *os)   {
      os->write((char *)this,sizeof(Joueur));
   //   os->flush();
      if (os->fail())
               cout << "write failed" << endl;
   }


pour la classe Plateau

Code:
myFile.write (reinterpret_cast<char *>(&p), sizeof(Plateau));
Code:
myFile1.read(reinterpret_cast<char *>(&p2), sizeof(Plateau));

ça marche pas trop bien .... Sad




merci d'avance Smile

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: I/O fileStram [c++]

Message  nvs le Ven 16 Mar 2012, 18:50

didi a écrit:bonsoir

ça fait une semaine que je cherche comment peut on lire ET écrir les Objets [...]

comme tu as pu le constater, ça n'existe pas en c++98 standard. comme dans les labos de 2e on se limite au c++ standard et à qt, va voir du côté de QDataStream.






alien

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum