Esercizio svolto sui file in C++

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.

inserimento cognome utente