Hola!!! tengo un programa en C++ donde quiero recervar algunos puestos de un estacionamiento... tengo un .txt llamado libre donde tengo algunos puestos,,,, cuando ejecuto el programa y pongo el puesto que deseo, me copia el puesto en otro .txt llamdo ocupado y se borra el puesto del libre.txt el problema es que cuando se borran algunos puestos que estan de ultimo se duplica el siguiente....
Aqui les dejo el codigo para que me entiendan mejor... les agradecería cualquier ayuda!!
#include<iostream>
#include<fstream>
#include<iomanip>
#include <ctime>
#include<string.h>
using std::ifstream;
using std::ofstream;
using namespace std;
main()
{
int op,opc;
string p,puesto,oc;
bool encontrado;
do
{
system("cls");
cout<<"1-guardar,2-buscar"<<endl;
cin>>op;
if(op==1)
{
ifstream libre;
libre.open("libre.txt", ios::in);
ofstream salida;
salida.open("ocupado.txt",ios::out|ios::app);
ofstream s;
s.open("sal.txt",ios::out|ios::app);
if(!libre)
{
cout<<"No se puede abrir el archivo"<<endl;
exit(1);
}
else
{
cout<<"puesto a ocupar: "<<endl;
cin>>puesto;
while(!libre.eof())
{
libre>>p;
if(puesto==p)
{
encontrado=true;
salida<<puesto<<endl;
}
else
{
s<<p<<endl;
}
}
if(encontrado!=true)
{
cout<<"Puesto no valido!"<<endl;
}
else
{
cout<<"Puesto recervado"<<endl;
}
}
libre.close();
salida.close();
s.close();
remove("libre.txt");
rename("sal.txt","libre.txt");
cout<<"1-continuar; 0-salir"<<endl;
cin>>opc;
}
}
while(opc==1);
system("pause");
return 0;
}
LIBRE.TXT
p1
p2
p3
p4
p5