web-dev-qa-db-fra.com

C ++ fstream écraser au lieu d'ajouter

J'essaie de créer un système de base de meilleurs scores pour un projet sur lequel je travaille.

Le problème que j'ai est, bien que j'écrive les noms dans mon principal, ils écrasent juste le précédent.

Actuellement, j'ai ceci:

void ManagePoint::saveScore(string Name, int Score)
{

    ofstream newFile("scorefile.txt");

    if(newFile.is_open())   
    {
        newFile << Name << " " << Score;            
    }
    else 
    {
        //You're in trouble now Mr!
    }


    newFile.close();

}

et pour les tests, je les ajoute comme ceci:

runner->saveScore("Robert", 34322);

runner->saveScore("Paul", 526);

runner->saveScore("Maxim", 34322);

Sur l'affichage de la charge, tout ce qui apparaîtra est le score de Maxim, comment puis-je les parcourir et les enregistrer tous, ou ajouter tout ou quelque chose?

25
Springfox

Vous devez ouvrir le fichier avec le mode d'ajout:

ofstream newFile("scorefile.txt", std::ios_base::app);

Il existe également divers autres modes .

39
Joseph Mansfield