NikoGJ
Messages postés13Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention21 avril 2005
-
6 oct. 2004 à 15:34
NikoGJ
Messages postés13Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention21 avril 2005
-
6 oct. 2004 à 17:33
Salut!
J'ai un petit (gros) problème: j'essaye de savoir s'il est possible d'écrire dans un fichier binaire, une instance de classe en une seule fois, voici mon code:
livre li; //c'est mon objet li de type livre avec 4 attributs:
//titre, auteur, année et un code entier
fstream f; //je déclare un stream de lecture/écriture
f.open("toto.dat",ios::app|ios::binary); //j'ouvre le fichier en mode binary
f.write(&li,sizeof(livre)); //c'est l'instruction qui foire
//à la compil
f.close(); //fermeture du stream
Est-ce qu'il y a moyen que ça marche comme ça, ou faut-il écrire chaque attribut séparement avec write?
NikoGJ
Messages postés13Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention21 avril 2005 6 oct. 2004 à 17:09
euh, encore une p'tite chose, j'ai mis la meme chose pour le read et il compile pas:
le compilo me met: invalid conversion from 'const char*' to 'char'
%-6
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 6 oct. 2004 à 17:23
pour la methode read, le const n'est pas de mise vu que le premier parametre (char *) est un pointeur sur la zone memoire qui recevra les données (et donc modifiée)
il suffit donc d'enlever le const_cast
suivant votre code
f.write( reinterpret_cast<char *>(&li), sizeof li );