2010-11-15 3 views
4

En C++, je dois écrire dans un fichier existant et y conserver le contenu précédent.C++: Écrire dans un fichier existant?

C'est ce que je l'ai fait:

std::ofstream logging; 

logging.open(FILENAME); 

logging << "HELLO\n"; 

logging.close(); 

mais mon texte précédent est supprimé (disparu). Qu'ai-je fait de mal?

Merci d'avance.

Répondre

8
logging.open(FILENAME, std::ios_base::app); 
+1

logging.open (FILENAME, std :: ios :: append | std :: mangé); ajoutera toujours à la fin aussi – Sudantha

1

Par défaut, le "opening mode" pour un fichier est écrasé. Essayez d'ouvrir le fichier en mode Ajout

Le deuxième paramètre de open est un bitum enum. Les deux options que vous devriez vérifier sont:

  • app - chercher à la fin du fichier avant chaque écriture
  • Ate - chercher à la fin du fichier après ouverture

    logging.open (FILENAME, std: : ios :: app | std :: ate);

3

Vous devez ouvrir le fichier en mode append:

logging.open(FILENAME, std::ios::app); 
0

ne cherchez-vous? quelque chose comme ça

myFile.open("file.txt", ios::out | ios::app); 
Questions connexes