Par défaut, un fichier ouvert en écriture l'est en mode ios::trunc: son contenu précédent est effacé dès la première écriture...
ios::ate te positionne à la fin du fichier, mais tu restes quand meme en mode trunc. (en fait, ios::ate sert quand tu lis le fichier, par exemple pour récupérer sa taille par un tellg).
Pour ouvrir un fichier de façon à écrire à la fin, il faut ios::app (append).
Donc, essaye
ofstream file(pathname, ios::app);
tu n'as pas besoin du ios::out, c'est fourni par la déclaration ofstream, et le constructeur peut ouvrir le fichier.
ios::app ne t'empêche pas de lire. Tu ouvres le fichier comme cela, puis tu peux te positionner pour lire, etc... Maintenant, si tu veux lire et écrire, il faut fstream, pas ofstream...
Francois
Partager