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.
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;
}
Sto imparando ad usare il C++, mi servirebbero anche dei suggerimenti su come cancellare i record, infatti se avete notato la funzione è vuota...
Spero di essere stato il più chiaro possibile e vi ringrazio anticipatamente, attendo vostri suggerimenti.