[C++] Problème avec ofstream
Bonjour,
Je travail sur un fichier d'une taille initiale X,
Cette taille augmente au fur et à mesure de programme
A chaque fois que je veux le modifier je me positionne en X (je ne veux pas toucher aux données qui se trouvent avant)
Pour se faire j'utilise le code suivant :
Code:
1 2 3 4 5 6 7 8
|
ofstream outfile ( strFichier.c_str(), ofstream::binary | ofstream::out );
outfile.seekp( X );
// ou
// outfile.seekp( X, ios_base::beg ); ne change rien
outfile.write((char *)donnees, tailleDonnees); |
Le problème est que avec cette méthode, qui me parait pourtant logique, les données du fichier ( avant la position X ) sont altérées par ce que j'écris.
J'ai aussi essayé le code suivant qui lui fonctionne.
Code:
1 2 3 4
|
ofstream outfile ( strFichier.c_str(), ofstream::binary | ofstream::app);
outfile.write((char *)donnees, tailleDonnees); |
Mais qui ne correspond pas à mon besoin car je ne peux plus revenir à la position X...
J'ai remplacé la première méthode (avec le seek) par l'équivalent C,a savoir des fopen, fread ... et fseek et cela marche très bien...
Quelqu'un aurai-t-il une idée du problème ??
Merci
@+