Ho creato questo programma banale che salva i movimenti su un file e ne calcola il saldo, per esercitarmi. Tuttavia non riesco a risolvere un problema, ovvero che ogni volta che lancio il programma, il file in cui salvavo i movimenti viene sovrascritto da uno nuovo.

Non ho molta esperienza (sono alle prime armi) quindi se avete delle illuminazioni su come migliorare il codice sono ben accette.

codice:
#include <iostream>
#include <fstream>

using namespace std;

    /* Dichiarazione Funzioni */

void fileCreator();
void titol();
void menu();
void insertChar();
double saldo();

    /* Dichiarazione Variabili Globali */

double tot = 0;

int main()
{
    fileCreator();
    titol();
    menu();

    return 0;
}



    /* Apertura e Creazione File */

void fileCreator()
{
    fstream file;

    file.open("testo.txt", ios::out);
    file << "CONTABILITA'"
         << endl
         << endl
         << "DATA" << "\t\t" << "MOVIMENTO" << "\t\t" << "CAUSALE" << "\t\t\t\t" << "SALDO";
    file.close();
}

    /* Titolo */

void titol()
{
    cout << endl
         << "**GESTIONE CONTABILITA'**"
         << endl;
}
codice:
    /* Menu Principale */

void menu()
{
    int status;

    cout << endl
         << "1. Inserire un nuovo movimento.\n"
         << "2. Visualizza il Saldo.\n"
         << "0. Esci\n"
         << endl
         << "Inserisci la tua scelta: ";
    cin >> status;
    cout << endl;

        switch(status)
            {
            case 1:
                insertChar();
                menu();
                break;
            case 2:
                cout << "Saldo corrente: " <<  saldo() << " Euro." << endl;
                menu();
            case 0:
                break;
            default:
                cout << endl
                     << "ERRORE: Inserisci un valore compreso tra 0 ed 1!"
                     << endl;
                menu();
                break;
            }
}

void insertChar()
{
    int giorno, mese, anno;
    double mov = 0;
    fstream file;

    cout << "Inserisci la data del movimento(giorno/mese/anno)"
         << endl;
    cin >> giorno >> mese >> anno;
    cout << "Inserisci il movimento: ";
    cin >> mov;

    tot = tot + mov;

    file.open("testo.txt", ios::out | ios::app);
    file << endl
         << giorno << "/" << mese << "/" << anno
         << "\t"
         << mov
         << "\t\t"
         << "Funzione non disponibile"
         << "\t\t"
         << tot;
    file.close();
}

double saldo()
{
    return tot;
}