Gestione in lettura scrittura di un file binario sia in accesso sequenziale che diretto. Attraverso un menù di scelta l’utente può decidere se scrivere e leggere un file in modo sequenziale o ad accesso diretto in C++ #include <iostream>#include <fstream>using namespace std;#define MAX 100fstream fp;fstream fd;struct prodotto{ char code[4]; int quantity; float price; char description[50];};struct prodotto p[MAX];void scrivi(fstream& f, prodotto p[]){char risp=’n’;prodotto t;int k=0;do { cout <<“\n Digita i dati:\n”; cout <<“\n Codice di 4 caratteri\n”; cin.ignore(1,’\n’); cin.getline(p[k].code,5); cin.ignore(1,’\n’); cout << “\n Digita la quantità\n”; cin >> p[k].quantity; cout <<“\n Digita il prezzo\n”; cin>>p[k].price; cout<<“\n Digita la Descrizione \n”; getchar(); cin.getline(p[k].description,30); f.write((char*)&p[k],sizeof(struct prodotto)); k++; cout << “Altri Dati s/n ? “; risp=getchar(); } while (risp==’s’);}void scrivi1(fstream& f, prodotto p[]){char risp=’n’;int k=0;prodotto temp;long posizione=0;int indice=0;do { cout<<“\n Digita i dati:\n”; cout<<“\n Codice di 4 caratteri\n”; cin.ignore(1,’\n’); cin.getline(p[k].code,5); cin.ignore(1,’\n’); cout<<“\n Digita la quantità\n”; cin>>p[k].quantity; cout<<“\n Digita il prezzo\n”; cin>>p[k].price; cout<<“\n Digita la Descrizione \n”; getchar(); cin.getline(p[k].description,30); do { cout<<“\n Inserisci indice del Record maggiore di zero\n”; cin>>indice; } while (indice<=0); posizione=(indice-1)*sizeof(struct prodotto); f.seekp(posizione); if (f.read((char*)&temp,sizeof(struct prodotto)) && (temp.code!=’\0′)) { cout<<“\n Prodotto già inserito con indice %d\t”<<indice; cout<<“\n Inserisci un altro indice”; cout<<“\n Ecco i dati presenti:\t Codice %s…
Tu devi essere registrato per visualizzare questo articolo.
Esegui la registrazione per accedere a questo contenuto.