ciao a tutti ho questo problema: ho fatto un programma che immetto da tastiera nome squadra, vittorie, pareggi,sconfitte e punti e mi fa la classifica, champions e uefa XD ho però un problema con i files. il problema o sta nel main o nella funzione aggiungi: se scrivo io il file di testo e poi successivamente faccio partire il programma, mi legge il file e mi fa la classifica e se dopo voglio aggiungere una squadra mi dice che è tutto ok, ma all'entrata nella funzione "aggiungi" il file mi diventa vuoto. continua a leggermi la classifica perchè credo che i valori siano copiati nel record sulla ram, ma se poi chiudo e riapro il programma il file database.txt è vuoto. sapete spiegarmi dov'è ke sbaglio?
grazie ^^

questo è il programma...

codice:
#include <iostream>
    #include <string.h>
    #include <fstream>
    using namespace std;

    fstream miofile;
    typedef struct elementi record;
    struct elementi{
           char nome[20];
           int V;
           int P;
           int S;
           int punti;
           };
           
    void aggiungi(record s[],int&riemp)
    {
         miofile.open("database.txt", ios::out|ios::ate);
         if(riemp<=0){
                      cout<<"\nInserire nome squadra: ";
                      cin>>s[riemp].nome;
                      miofile<<s[riemp].nome;
                      miofile<<endl;
                      }
         else{
              char NOME[20];
              bool continua;
              int esito;
              do{
                   continua=false;
                   cout<<"\nInserire nome squadra: ";
                   cin>>NOME;
                   for(int i=0;i<riemp;i++){
                           esito=strcmp(NOME,s[i].nome);
                           if(esito==0){
                                        continua=true;
                                        cout<<"SQUADRA GIA' ESISTENTE.\a\a\a\n\n\n";
                                        }//IF
                           else{
                                strcpy(s[riemp].nome,NOME);
                                miofile<<s[riemp].nome;
                                miofile<<endl;
                                }//ELSE
                   }//FOR
              }while(continua);
         
         }//ELSE
         cout<<"\nInserire VITTORIE: ";
         cin>>s[riemp].V;
         miofile<<s[riemp].V;
         miofile<<endl;
         cout<<"\nInserire PAREGGI: ";
         cin>>s[riemp].P;
         miofile<<s[riemp].P;
         miofile<<endl;
         cout<<"\nInserire SCONFITTE: ";
         cin>>s[riemp].S;
         miofile<<s[riemp].S;
         miofile<<endl;
         s[riemp].punti=(s[riemp].V*3)+s[riemp].P;
         cout<<"\n------> PUNTI: " <<s[riemp].punti <<" <--------\n\n\n";
         miofile<<s[riemp].punti;
         miofile<<endl;
         riemp++;
         miofile.close();
    }
    void scambia(record s[], int i, int posmin)
    {
         record TEMP=s[i];
         s[i]=s[posmin];
         s[posmin]=TEMP;
    }

    void classifica(record s[], int&riemp)
    {
         int posmin;
         for(int i=0;i<riemp-1;i++){
                 posmin=i;
                 for(int j=i+1;j<riemp;j++){
                         if(s[j].punti<s[posmin].punti){
                                                        posmin=j;
                                                        }
                 }
                 if(posmin!=i){
                               scambia(s,i,posmin);
                               }
         }
    }

    void capovolgi(record s[], int&riemp)
    {
         record s2[20];
         int k=riemp-1; 
         for(int i=0;i<riemp;i++){
                 s2[i]=s[k--];
                 }
         for(int j=0;j<riemp;j++){
                 s[j]=s2[j];
                 }
    }




    void mostra(record s[], int&riemp)
    {
         cout<<"\n-----------CLASSIFICA------------\n";
         cout<<"   NOME           PUNTI     V     P     S  \n";
         for(int i=0;i<riemp;i++){       
                 cout<<i+1 <<") " <<s[i].nome <<"          " <<s[i].punti <<"         " <<s[i].V <<"     " <<s[i].P;
                 cout<<"     " <<s[i].S <<"\n\n";   
                 }
                 cout<<"\n---------------------------------\n";
    }

    void champions(record s[], int&riemp)
    {
         char coppa[20];
         bool b_coppa=true;
         cout<<"\nchi ha vinto la coppa italia? ";
         cin>>coppa;
         cout<<"\nIn champion's league vanno:\n";
         if(riemp<4){
                     for(int i=0;i<riemp;i++){
                             if(strcmp(coppa,s[i].nome)==0){
                                                           b_coppa=false;
                                                           }
                             cout<<s[i].nome <<endl;
                             }
                     if(b_coppa){
                                 cout<<coppa <<endl;
                                 }
                     }
         else{
              for(int j=0;j<4;j++){
                      if(strcmp(coppa,s[j].nome)==0){
                                                    b_coppa=false;
                                                    }
                      cout<<s[j].nome <<endl;
                      }
              if(b_coppa){
                          cout<<coppa <<endl;
                          }
         }
         cout<<"----------------------------\n";
    }     

    void uefa(record s[], int&riemp)
    {
         if(riemp<4){
                     cout<<"errore! inserire almeno 5 squadre!\n\a";
                     }
         else{
              cout<<"\nIn europa league vanno:\n";
              for(int i=4;i<6;i++){
                      cout<<s[i].nome <<endl;
                      }
              cout<<"----------------------\n";
    }
    }


    int main(){
        record S[20];
        int RIEMP=0;
        bool CONTINUA=true;
        int scelta;
        bool ciclo=true;
        char SCELTA[20];
       
        if(!miofile){
            cout<<"database non trovato.\n";
            system("pause");
        }
        else{
            miofile.open("database.txt",ios::in);
            while(!miofile.eof()){
                   miofile>>S[RIEMP].nome;
                   miofile>>S[RIEMP].V;
                   miofile>>S[RIEMP].P;
                   miofile>>S[RIEMP].S;
                   miofile>>S[RIEMP].punti;
                   RIEMP++;
        }
        miofile.close();
       
        do{
        cout<<"1)aggiungi\n2)classifica\n3)champion's\n4)europa_league\n0)ESCI\nche vuoi fare??\n";     
        cin>>SCELTA;
        cout<<"\n\n";
        if(strcmp(SCELTA,"1")==0 || strcmp(SCELTA,"aggiungi")==0){
                                   aggiungi(S,RIEMP);
                                   }
        else{
             if(strcmp(SCELTA,"2")==0 || strcmp(SCELTA,"classifica")==0){
                     classifica(S,RIEMP);
                     capovolgi(S,RIEMP);
                     mostra(S,RIEMP);
                     }
             else{
                  if(strcmp(SCELTA,"3")==0 || strcmp(SCELTA,"champion's")==0){
                     classifica(S,RIEMP);
                     capovolgi(S,RIEMP);
                     champions(S,RIEMP);
                     }
                  else{
                       if(strcmp(SCELTA,"4")==0 || strcmp(SCELTA,"europa_league")==0){
                         classifica(S,RIEMP);
                         capovolgi(S,RIEMP);
                         uefa(S,RIEMP);
                       }
                       else{
                            if(strcmp(SCELTA,"0")==0 || strcmp(SCELTA,"ESCI")==0 || strcmp(SCELTA,"esci")==0){
                               ciclo=false;
                            }
                            else{
                                 cout<<"ERRORE!!!!\n\n\n";
                                 }
                       }
                  }
             }
        }       
    }while(ciclo);
    }
    return 0;
    }
ho provato sia a fare

"miofile.open("database.txt", ios:ut|ios::ate)"

che

"miofile.open("database.txt", ios:ut|ios::app)"

ps
ignorate tranquillamente queste void: champions,uefa,classifica,scabia,capovolgi. lì i file non li tocco prp, sono sicuro che funzionano perchè il programma senza l'uso dei file va perfetto.

volevo fare "ios::nocreate" o "ios::no replace", ma dice ke non sono inclusi nella libreria... ._.
spero che qualcuno possa aiutarmi, non riesco proprio a farlo :S
vi ringrazio ancora ^^