Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Programma per classifiche
Forum - C/C++ - Programma per classifiche

Avatar
xr3venger (Normal User)
Newbie


Messaggi: 3
Iscritto: 26/11/2010

Segnala al moderatore
Postato alle 23:27
Venerdì, 26/11/2010
Salve a tutti sono nuovo di qui ma mi sono iscritto perche' sto iniziando a fare qualcosina in C++, diciamo che lo studio a scuola, quest'anno sto facendo puntatori pile liste grafi ecc, pero' apparte che non mi piacciono molto, sono solito fare cose un po' fantasiose tipo questa,
da ieri sto provando a realizzare 1 programmino che serva per gestire delle classifiche per tornei o altro, tuttavia non so ancora le funzioni specifiche per salvare i dati del file e di non sovrascriverli al prossimo restart dell'exe, i comandi per aprire e chiudere il file fortunamente li ho trovati su internet.
Il mio problema in sostanza e' il seguente:
Ogni volta che faccio partire l'exe, mi sovrascrive i dati nel file di testo e vorrei che cio' non succedesse qualcuno sa aiutarmi??

Di seguito posto il source (non datemi nomi o cose varie per l'ordine o altro, come ho gia' detto e' la prima volta che lavoro su cose a livello ""avanzato"" per me ovvio XD spero possiate aiutarmi voi esperti =) )

Codice sorgente - presumibilmente C++

  1. #include <string.h>
  2. #include <iostream.h>
  3. #include <fstream.h>
  4. using namespace std;
  5. struct classifica
  6. {
  7.        int ID;
  8.        string nick;
  9.        int lvl;
  10.        float media;
  11.        int score;
  12. };
  13. classifica tab[100];
  14. int x,cont,val;
  15. void inserimento();
  16. void aprifile();
  17. int main()
  18. {
  19.     char risp,risp2;
  20.     x=1;
  21.     do{
  22.       cout <<"Si desidera registrare un player? (y/n):    ";
  23.       cin >> risp;
  24.           if (risp == 'y')
  25.           {
  26.                    cout <<"Quanti player vuoi aggiungere?   ";
  27.                    cin >> val;
  28.                    inserimento();
  29.           }
  30.           if (risp == 'n')
  31.               aprifile();
  32.               }while ((risp != 'y') || (risp != 'n'));
  33. }
  34. void inserimento()
  35. {
  36.      for (x=1;x<=val;x++)
  37.      {
  38.                                              cout <<"Inserisci il nickname del giocatore:           ";
  39.                                              cin >> tab[x].nick;
  40.                                              cout <<"Inserisci il punteggio attuale del giocatore:          ";
  41.                                              cin >> tab[x].score;
  42.                                              cout <<"Inserisci il livello del giocatore:            ";
  43.                                              cin >> tab[x].lvl;
  44.                                              cout <<"Inserisci la media del giocatore:              ";
  45.                                              cin >> tab[x].media;
  46.      }
  47. }
  48. void aprifile()
  49. {
  50.      int x;
  51.      ofstream f("classifica.txt");
  52.      for (x=1;x<=val;x++)
  53.      {
  54.                          f <<tab[x].nick<<"        "<<tab[x].score<<"         "<<tab[x].lvl<<"          "<<tab[x].media<<endl<<endl;
  55.                          cout <<tab[x].nick<<"        "<<tab[x].score<<"         "<<tab[x].lvl<<"          "<<tab[x].media<<endl<<endl;
  56.      }
  57.      f.close();
  58. }



Ovviamente il programma e' ancora incompleto perche' dovro' implementare le funzioni per modificare ogni determinato campo del record, ma vabbe questo dovrei saperlo fare senza problemi, il problema piu' grosso e' lavorare sul file =)
Grazie ancora dell'attenzione ^^

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Up
2
Down
V
Segnala al moderatore
Postato alle 23:56
Venerdì, 26/11/2010

come specificato qui http://www.cplusplus.com/doc/tutorial/files/

semplicemente devi aggiungere ios::out | ios::app come secondo parametro al costruttore dell'ofstream :)


Ingegnere Informatico
https://ldlagency.it
PM
Avatar
xr3venger (Normal User)
Newbie


Messaggi: 3
Iscritto: 26/11/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 9:33
Sabato, 27/11/2010
Grazie mille!!! funziona alla perfezione! :)

PM