27/07/10 15:19
Iago90
Salve a tutti, è il mio primo messaggio in questo forum, volevo innanzitutto ringraziare tutti per il lavoro che svolgete che è di infinito aiuto per chi si affaccia al mondo della programmazione, e poi approfittare della vostra pazienza per sottoporre a voi menti esperte un problema che mi blocca da giorni.
Sto creando un programma per la gestione di una libreria ma ho incontrato un intoppo nella gestione dei file salvati.
Mi serve salvare l'intero oggetto "tessera" che contiene i dati del lettore, e poi poterlo ripescare dal file per modificarlo cancellarlo o semplicemente leggerlo.
Il codice è questo:
Sono divise in 3 file diversi questi pezzi di codice, ma comunque ben congiunti, non ci sono errori del compilatore.
Non so dove sia il problema, so solo che in output non mi mostra l'elenco delle tessere
Vi prego aiutatemi
Grazie in anticipo
Sto creando un programma per la gestione di una libreria ma ho incontrato un intoppo nella gestione dei file salvati.
Mi serve salvare l'intero oggetto "tessera" che contiene i dati del lettore, e poi poterlo ripescare dal file per modificarlo cancellarlo o semplicemente leggerlo.
Il codice è questo:
//C'è un menu, la scelta 1 è la scrittura dei record e la 2 la lettura dell'elenco if(scelta == '1'){ ofstream write("Tessere", ios::app | ios::binary); do{ lettore.set_tessera(); write.write((char*)&lettore, sizeof(tessera)); cin.sync(); cout<< "Inserire nuova tessera? <s/n>: "; cin>> risp; }while(risp != 'n'); write.close(); } if(scelta == '2'){ system("CLS"); ifstream read("Tessere", ios::in | ios::binary); while(!read.eof()){ read.read((char*)&lettore, sizeof(tessera)); lettore.get_tessera(); } read.close(); system("pause"); } //Le due funzioni lettore.set_tessera() e lettore.get_tessera() le riporto qui di seguito void tessera::set_tessera(){ system("CLS"); cout<<"Creazione nuova tessera utente"<< endl<< endl; cout<<"id lettore: "; cin>> id; cout<<"nome: "; getline(cin, nome); cout<<"cognome: "; getline(cin, cognome); cout<< "codice fiscale: "; getline(cin, codfis); cout<< "tel: "; getline(cin, tel); cout<< "indirizzo: "; getline(cin, indirizzo); cout<< "citta': "; getline(cin, citta); cout<< "n. documento di identita': "; getline(cin, doc); system("CLS"); } void tessera::get_tessera(){ cout<< "Visualizzazione tessera lettore"<<endl<<endl; cout<< "id lettore: " << id << endl; cout<< "nome: " << nome << endl; cout<< "cognome: " << cognome << endl; cout<< "codice fiscale: "<< codfis<< endl; cout<< "indirizzo: " << indirizzo << endl; cout<< "citta': " << citta << endl; cout<< "tel.: " << tel << endl; cout<< "n. documento di identita': " << doc << endl << endl; } //Ovviamente fanno capo alla classe tessera: class tessera { int id; string nome; string cognome; string codfis; string tel; string indirizzo; string citta; string doc; public: void set_tessera(); void get_tessera(); void modifica(); void elimina(); };
Sono divise in 3 file diversi questi pezzi di codice, ma comunque ben congiunti, non ci sono errori del compilatore.
Non so dove sia il problema, so solo che in output non mi mostra l'elenco delle tessere
Vi prego aiutatemi
Grazie in anticipo
Ultima modifica effettuata da Iago90 27/07/10 15:20
aaa