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; }

Rispondi quotando