View Full Version : ajuda em c++(urgente)


wallydosantos
18-04-2007, 01:16
boas... tenho um problema com uma funçao pra eliminar um elemento de um ficheiro...o ficheiro e do tipo(1;Ricardo Gomes Silva;Avenida dos Combatentes,1200 Lisboa;140567000)e eu quero eliminar por numero. ao copilar nao me da erros mas quando ponho a correr rebenta. estou a utilizae uma estrutura do tipo cliente:
typedef struct cliente{
long int num;
char nome[max];
char morada[max];
long int n_c;
}cliente;

eis a funcao:
void removenode(LIST * lista,void * ptr_data)
{
LIST_NODE * node, * ant;
BOOLEAN find=FALSE;
node=*lista;
while(node!=NULL && find==FALSE)
{
if(DATA(node)==ptr_data)
{
if(node==*lista)
{
*lista=NEXT(node);
free(node);
}
else
{
NEXT(ant)=NEXT(node);
free(DATA(node));
free(node);
}
find=TRUE;
}
else
{
ant=node;
node=NEXT(node);
}
}
return;
}

nota :

so elimina o primeiro elemento gostava de eliminar qualquer um.~

muito obrigado.

hYpe
18-04-2007, 18:43
Não tive a ler tudo o q escreveste... Mas repara que se os nomes estao em linhas diferentes (e nao estando ainda pior) da' algum trabalho eliminar uma linha e puxar as outras para cima...

Para o teu caso fazia assim:
ler uma linha;
verficar se o numero e' o para eliminar;
se sim nao faz nada;
se nao, copia para outro ficheiro.
while(!eof)

depois e' so mudar o nome aos ficheiros e pronto.