Ciao Oregon, alla fine il programma parte tranquillamente, scrivendo nel seguente modo, solo che non c'è quasi nessuna differenza sostanziale al primo codice. Sai per caso il motivo? Forse è qualcosa che non riesco a vedere io!
Ti scrivo solo l'int modifica(), perchè è l'unica che ho modificato!
codice:
{
libro a;
ifstream leggi;
leggi.open("b.txt");
ofstream posizioni("posizioni.txt");
int posizione=0;
string titoloCercato="";
cout<<"\nTitolo:";
cin>>titoloCercato;
while(!leggi.eof())
{
leggi>>a.titolo;
leggi>>a.quantita;
posizione++;
if(a.titolo==titoloCercato)
{
cout<<"\nposizione"<<posizione<<endl;
posizioni<<posizione<<endl;
}
}
leggi.close();
posizioni.close();
int modificare=0;
cout<<"\n posizione da modificare:";
cin>>modificare;
ofstream copia("copia.txt");
leggi.open("b.txt");
for(int i=0; i<modificare-1;i++)
{
leggi>>a.titolo;
leggi>>a.quantita;
copia<<a.titolo<<endl;
copia<<a.quantita<<endl;
}
leggi>>a.titolo;
leggi>>a.quantita;
int nuovo;
cout<<"\nQuantita da aggiungere:";
cin>>nuovo;
int pezzi=0;
pezzi=nuovo+a.quantita;
copia<<a.titolo<<endl;
copia<<pezzi<<endl;
while(!leggi.eof())
{
libro a;
leggi>>a.titolo;
if(a.titolo!="")
{
leggi>>a.quantita;
copia<<a.titolo<<endl;
copia<<a.quantita<<endl;
}
}
leggi.close();
copia.close();
remove("b.txt");
rename("copia.txt","b.txt");
}