Ir ao conteúdo
  • Cadastre-se
brunopandradef

Como fazer a esclusao de um cadastro

Recommended Posts

O que eu fiz ate agora.

Quero saber como posso excluir um cadastro do cadastro.txt .

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct registro
{
      char nome[25];
      char bairro[20];
      char uf[2];
      char rua[25];
      char cidade[20];
      char telefone[20];
      int cpf, num;
      char cod[20];
};

void funcadastro()
{
    struct registro cadastro;
    int resp;
    char url[]="cadastro.txt";
    FILE *arq;

    arq = fopen(url, "a+");
    if(arq == NULL)
            printf("Erro, nao foi possivel abrir o arquivo\n");
    else {
    printf("\n\t\tInforme seu nome: ");
    fflush(stdin);
    gets(cadastro.nome);
    fprintf(arq, "Nome: %s\n", cadastro.nome);
    printf("\n\t\tInforme seu UF: ");
    fflush(stdin);
    gets(cadastro.uf);
    fprintf(arq, "UF: %s\n", cadastro.uf);
    printf("\n\t\tInforme sua cidade: ");
    fflush(stdin);
    gets(cadastro.cidade);
    fprintf(arq, "Cidade: %s\n", cadastro.cidade);
    printf("\n\t\tInforme seu bairro: ");
    fflush(stdin);
    gets(cadastro.bairro);
    fprintf(arq, "Bairro: %s\n", cadastro.bairro);
    printf("\n\t\tInforme sua rua: ");
    fflush(stdin);
    gets(cadastro.rua);
    fprintf(arq, "Rua: %s\n", cadastro.rua);
    printf("\n\t\tInforme seu CPF: ");
    scanf ("%d",&cadastro.cpf);
    fprintf(arq, "CPF: %d\n", cadastro.cpf);
    printf("\n\t\tInforme seu numero: ");
    scanf("%d",&cadastro.num);
    fprintf(arq, "Numero: %d\n", cadastro.num);
    printf("\n\t\tInforme seu telefone: ");
    fflush(stdin);
    gets(cadastro.telefone);
    fprintf(arq, "Telefone: %s\n", cadastro.telefone);
    printf("\n\t\tInforme seu codigo: ");
    scanf("%d",&cadastro.cod);
    fprintf(arq, "Codigo: %d\n", cadastro.cod);
    }
    fclose(arq);
    printf("\t\tDeseja continuar? 1-SIM / 0-NAO: ");
    scanf("%d", &resp);
    while(resp < 0 || resp > 1)
    {
        printf("Valor incorreto tente novamente, 1-SIM / 2-NAO: ");
        scanf("%d",&resp);
    }
    if(resp != 0)
        return main();
}

int main()
{
    int resp;
    printf("\n\t\t1 - CADASTRO\n");
    printf("\n\t\t2 - ALTERACAO\n");
    printf("\n\t\t3 - EXCLUSAO\n");
    printf("\n\t\t0 - SAIR\n");
    printf("\n\t\tEscolha a opcao desejada: ");
    scanf("%d", &resp);
    while(resp < 0 || resp > 3)
    {
        printf("Valor incorreto, Tente novamente: ");
        scanf("%d", &resp);
    }
    while(resp!=0)
    {
    switch(resp)
    {
    case 1:
        funcadastro();
        break;
    case 2:
        //funalteracao();
        break;
    case 3:
        //funexclusa();
        break;
    case 4:
       //funçaobusca
    case 0:
        break;
    }
    }
    return 0;
}
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não lhe é possível eliminar. Pense que um arquivo de txt é como um estacionamento, você pode tirar o carro porém a vaga permanecerá lá. Com os dados são iguais, você pode "zerar" os dados porém o espaço estará lá. O que sim você pode fazer é carregar todos os dados na memória editar e depois sobrescrever o arquivo novamente sem o nome que você quer excluir.

adicionado 2 minutos depois

Ou simplesmente você pode marcar com um byte adiante tipo 0 ou 1 que corresponde a eliminado ou valido. Depois caso você precise de um novo espaço você pode reutilizar esse que está marcado como 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×