Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bushin

Eliminar Utilizador

Mensagens Recomendadas

bushin

olá pessoal!

Estou com o seguinte problema, quando elimino um utilizador, com esta função:

void eliminaUtilizador(int tipo){
Utilizador* usr;
int id=0;

switch(tipo){
	case ADMINISTRADOR:
		usr=new Administrador();
		break;
	case FUNCIONARIO:
		usr=new Funcionario();
		break;
	case CLIENTE:
		usr=new Cliente();
		break;
}

cout<<"Introduza o id do Utilizador a eliminar: ";
cin>>id;

usr->erase(id);
delete usr;
}

quando peço para listar os utilizadores,

void listaUtilizadores(int tipo){
Utilizador* usr;
ifstream file;

switch(tipo){
	case ADMINISTRADOR:
		usr=new Administrador();
		break;
	case FUNCIONARIO:
		usr=new Funcionario();
		break;
	case CLIENTE:
		usr=new Cliente();
		break;
}

int num=usr->getLastID();

for(int i=0;i<num;i++){
	usr->read(i+1);
	cout<<usr->toString()<<endl;
	cout<<" ----------------------------------------------------------------- "<<endl;
}
}

ele lista-me os que eliminei, melhor ele apaga os dados do id que pedi mas deixa os enunciados.

ex:

numero: 8

Nome:

telefone: -112247834

utilizador:

Pass:

Conseguem ver qual é o problema???

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
TheDark

Sem saber o que fazem os métodos read e erase, e provavelmente mais uma data de detalhes, é complicado ajudar.


Desaparecido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bushin

Penso que o meu problema está nesta função:

int Utilizador::getLastID(){
ifstream file(ficheiro,ios_base::in);
string linha;
int lastID=0;
while(!file.eof()){
	file>>linha;
}
linha=linha.substr(0,linha.find_first_of(';',0));
lastID=atoi(linha.c_str());

file.close();
return lastID;
}

Preciso de actualizar ou melhor preciso de saber quantos id (linhas de registo) tenho no ficheiro. Para poder utilizar

for(int i=0;i<num;i++){
                usr->read(i+1);
                cout<<usr->toString()<<endl;
                cout<<" ----------------------------------------------------------------- "<<endl;

Se não, vai me buscar o total de utilizadores quer os que já foram apagados quer os que realmente estão activos.

string Utilizador::toString(){
stringstream s;
s<<"Numero:\t\t"<<id<<endl<<"Nome:\t\t"<<nome<<endl<<"Morada:\t\t"<<morada<<endl;
s<<"Codigo Postal:\t"<<cPostal<<endl<<"Localidade:\t"<<localidade<<endl<<"Telefone:\t"<<telefone<<endl;
s<<"Utilizador:\t"<<UID<<endl<<"Password:\t"<<password<<endl;
return s.str();
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.