1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

ajuda em c++(urgente)

Discussão em 'Programação' iniciada por wallydosantos, 18 de Abril de 2007. (Respostas: 1; Visualizações: 558)

  1. wallydosantos

    wallydosantos Power Member

    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.
     
    Última edição: 18 de Abril de 2007
  2. hYpe

    hYpe [email protected] Member

    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.
     

Partilhar esta Página