> -- L'ouverture en écriture seulement vide toujours le fichier,
> s'il existe déjà. Il faut absolument ouvrir en
> bidirectionnel, si tu veux y écrire, mais tu ne veux pas
> détruire tout le contenu précédant.
Effectivement, c'set que j'ai fait en premier et je ne comprenais pas
pourquoi mon fichier était systématiquement vidé.
> -- Si tu veux utiliser seek pour aller à un endroit arbitraire,
> il faut ouvrir en mode binaire ; sinon, tu n'as droit à
> seeker qu'au deux bouts ou à un endroit où tu as fait un
> tell.
Ah bon? En fait, ce que j'ai fait, c'est utilisé un fstream, que j'ouvre
avec les flags par défaut (in et out, et il me semble que le mode
binaire n'est pas activé) et j'arrive à faire des seek. Le code exact
ressemble à ça :
fstream file;
file.open( filename );
file.seekp( -count-4, ios_base::end );
file.put( 1 );
file.put( 2 );
file.put( 3 );
...
> Donc, en supposant que tu saches déjà exactement où tu veux
> écrire, le code devient quelque chose comme :
>
> std:
fstream dest(
> name, std::ios::in | std::ios:
ut | std::ios::binary ) ;
> dest.seekp( position, std::ios::beg ) ;
> // Sorties vers dest, en prenant bien soin du nombre
> // des octets générés.
Ici quelle est la signification précise de 'std::ios::in'? Que l'on va
faire des seek? Qu'il ne fait pas effacer le contenu du fichier?
Merci beaucoup.