Salve a tutti, prima di scrivere o cercato una soluzione fra le varie discussioni ma non sono riuscito ancora a capire come risolvere il mio problema...
Ho esigenza di salvare su un file dei dati relativi a dei dipendenti, e in seguito poterli gestire (cancellare, visualizzare, ecc...)
Di seguito riporto il codice che ho creato che però mi da qualche problema, non sò se ho fatto bene o se ci sono dei modi per scriverlo più facilmente.
Utilizzo Visual C++ 2008 Express Edition come compilatore.
Sto imparando ad usare il C++, mi servirebbero anche dei suggerimenti su come cancellare i record, infatti se avete notato la funzione è vuota...codice:#include <iostream> #include <string> using namespace std; void carica(); void cancella(); void visualizza(); struct dipendente{ int matricola; string nome; string cognome; int settore; }; typedef struct dipendente dip; dip database; FILE *azienda; void main(){ int scelta; cout<<"Database gestione dipendenti" << endl << "---------------------------------" << endl << endl << endl; cout<< "MENU\n1) Inserisci dip\n2) Cancella dip\n3) Visualizza elenco dip\n0) Uscita"; do{ cout<< "\n\n\nscelta --> "; cin>> scelta; switch(scelta){ case 1: azienda = fopen("database.dat","wb"); carica(); fclose(azienda); break; case 2: azienda = fopen("database.dat","wb"); if (azienda != NULL)cancella(); fclose(azienda); break; case 3: azienda = fopen("database.dat","rb"); visualizza(); fclose(azienda); break; case 0: break; default: cout<<"\n\nError"; break; } }while(!scelta); } void carica(){ char selezione; fwrite(&database, sizeof(struct dipendente), 1, azienda); cout<< "\n\n\nCaricamento dati dipendente\n\n\nmatricola: "; cin>> database.matricola; cout<< "\nnome: "; cin>> database.nome; getline(cin, database.nome); cout<<"\ncognome: "; cin>> database.cognome; getline(cin, database.cognome); cout<< "\nsettore: "; cin>> database.settore; cout<< "\n\n\n\ninserire un nuovo record? <s/n>"; cin>> selezione; if(selezione == 's') {carica();} return; } void cancella(){ } void visualizza(){ fread(&database, sizeof(struct dipendente), 1, azienda); cout<<"Visualizzazioe elenco dipendenti\n----------------------------"; while(!feof(azienda)){ cout<< "\n\n\n\nmatricola: " << database.matricola; cout<< "\nnome: " << database.nome; cout<<"\ncognome: " << database.cognome; cout<< "\nsettore: " << database.settore; fread(&database, sizeof(struct dipendente), 1, azienda); } return; }
Spero di essere stato il più chiaro possibile e vi ringrazio anticipatamente, attendo vostri suggerimenti.![]()


Rispondi quotando