PDA

View Full Version : [C++] Problema Files


StErMiNeiToR
25-09-2004, 17:18
void mod()
{
cout<<"\n-------- Inizio Modify --------\n"<<endl;
int w=0;
char w2;
cout<<"Opzione modifica articolo... \nInserisci il numero progressivo corrispondente all'articolo ";
cin>>w;
cout<<"Cosa vuoi modificare dell articolo? Nome(n), Quantita(q) o Prezzo(p)?";
cin>>w2;
fstream tb;
tb.open("magaz.dat",ios::in | ios::binary );
if(tb.fail())
{
cout<<"File inesistente. Crea il file prima!\n";
return;
}
tb.seekp((w-1)*sizeof(a),ios::beg);
tb.read((char*)&(a),sizeof a);
if((w2=='n')||(w2=='N'))
{
cout<<"Inserisci il nome modificato "<<endl;
gets(a.art);
}
if((w2=='q')||(w2=='Q'))
{
cout<<"Quanti esemplari vuoi inserire del nuovo articolo "<<a.art<<"? ";
cin>>a.qua;
if(a.qua<=0)
{
cout<<"Devi inserire un numero maggiore di zero!\n";
return;
}
}
if((w2=='p')||(w2=='P'))
{
cout<<"Quale e' il prezzo del nuovo articolo "<<a.art<<"? ";
cin>>a.prz;
if(a.prz<=0)
{
cout<<"Devi inserire un numero maggiore di zero!\n";
return;
}
}
tb.close();
if(tb.fail())
{
cout<<"errore in chiusura\n";
return;
}



tb.open("magaz.dat",ios::app | ios::binary );
if(tb.fail())
{
cout<<"File inesistente. Crea il file prima!\n";
return;
}


tb.write((char*)&(a),sizeof(a));
cout<<"\nArticolo Modificato con Successo!\n\n"<<a.art<<"\t"<<a.qua<<"\t"<<a.prz<<"euro\n";
tb.close();
if(tb.fail())
{
cout<<"errore in chiusura\n";
return;
}
cout<<"\n-------- Fine Modify --------"<<endl;
}

Allora ragazzi vi spiego.. questo programma ha varie funzioni... c'è la funzione che mette degli oggetti in un magazzino e riempie un file... poi questa funzione che ho messo sopra ti da l oppurtunita di prendere un articolo e modificarne nome, quantita e prezzo... unica pecca? è che dopo aver modificato l articolo mi cancella tutto il file.. come se scrivesse in ios::out

come faccio? dove è l errore?

StErMiNeiToR
28-09-2004, 13:35
up plz :(

StErMiNeiToR
28-09-2004, 22:07
nessuno sa aiutarmi?