Dev - C++ - Archivos en Dev C++

 
Vista:
sin imagen de perfil

Archivos en Dev C++

Publicado por liliana (1 intervención) el 29/10/2014 06:22:53
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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder