begin process at 2010 02 10 01:52:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Ecriture d'un objet dans un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ecriture d'un objet dans un fichier

mercredi 6 octobre 2004 à 15:34:01 | Ecriture d'un objet dans un fichier

NikoGJ

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?

Merci d'avance. :)
mercredi 6 octobre 2004 à 16:10:18 | Re : Ecriture d'un objet dans un fichier

steve_clamage

bonjours,

d'apres le prototype de la methode write qui attend un const char * en parametre, un cast devrais suffir

ici ce sera static_cast car le transtypage peut etre resolu a la compilation, sans oublier le const_cast pour passer de char * à const char *

f.write( const_cast<const char *>(static_cast<char *>(&li)), sizeof li );
mercredi 6 octobre 2004 à 16:34:30 | Re : Ecriture d'un objet dans un fichier

NikoGJ

oula, sacré cast, mais bon, ça marche pas est-ce qu'il y existe une solution pour enregistrer le meme objet dans un fichier texte plutot que binaire?
mercredi 6 octobre 2004 à 16:55:29 | Re : Ecriture d'un objet dans un fichier

steve_clamage

Réponse acceptée !
oui en effet, le static_cast semble invalide ?

une solution qui me plait moins mais qui marche

f.write( const_cast<const char *>(reinterpret_cast<char *>(&li) ), sizeof li );


mercredi 6 octobre 2004 à 17:02:36 | Re : Ecriture d'un objet dans un fichier

NikoGJ

Yahoo! ça marche à présent. Merci beaucoup!
mercredi 6 octobre 2004 à 17:09:32 | Re : Ecriture d'un objet dans un fichier

NikoGJ

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'
mercredi 6 octobre 2004 à 17:23:18 | Re : Ecriture d'un objet dans un fichier

steve_clamage

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 );
mercredi 6 octobre 2004 à 17:33:26 | Re : Ecriture d'un objet dans un fichier

NikoGJ

ça fonctionne bien maintenant, merci pour tout


Cette discussion est classée dans : fichier, objet, ecriture, livre, li


Répondre à ce message

Sujets en rapport avec ce message

ecriture fichier txt turboC++ [ par idk ] qqun connais une fonction, qui te place le cursor, (dans un fichier),CAD qui renvoie à la ligne suivante exemple char prenom="tom"char nom="bauq" Et d ecriture de champ de bits dans un fichier [ par obasileus ] Salut, est-ce que quelqu'un sait comment ecrire un champ de bits (9 bits) dans un fichier ?merci d'avance@+obasileus ecriture en mode insertion [ par loopy ] Salut, je voudrais savoir s'il est possible de rajouter des infos dans un fichier (en mode texte) sans que cela efface les infos precedentes car je do Ecriture du contenu d'une classe dans un fichier [ par bidule ] Bonjour,Je dois ecrire un programme en C++ qui utilise des fichiers.En fait, une fois que j'ai renseigné les variables (num, nom, prenom...) de ma cla help sur lecture/ecriture sur fichier sur c++ [ par overfun ] Bonjour à tous et à toutes, je suis nouveau dans la programmation et voudrait savoir comment écrire dans un fichier seulement sur quelques lignes !!Co Ecriture de fichier texte & Séparateur !! [ par Misutsu ] bonjour :)C'est la première fois que j'ai à utiliser des fichiers en C++, et je vois que l'espace sert de séparateur.Dans mon cas, j'ai besoin d'enreg tableau d'objet comme variable d'instance [ par MrKribou ] Bon dans le fichier .h (ou fait c comment qu'on appele se fichier la ? header ?) comment declare ton un tableau d'objet comme variable d'instance.Par Ecriture routine elimination combinaison [ par sandres ] Bonjour Je cherche une routine pour éliminer les combinaisons ( 3 / 4/ 5 numéros ) dans l'ordre et /ou le désordre commune à deux fichiers .1-Il faudr ecriture dans un fichier [ par Elkaire ] Comment insérer une valeur (contenue dans un tableau), en plein milieu d'un fichier sans remplacer les données du fichier...avec CFile ?Bringdal ;) pb de lecture ecriture d'un fichier excel [ par margotfleur ] MargotFleur Bonjour à tous !Après avoir lu tout ce qu'il y a sur ce forum concernant l'accès à un fichier excel, (je suis débutante en VC++), je n'arr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales