Ir ao conteúdo
  • Cadastre-se

Como fazer a esclusao de um cadastro


brunopandradef

Posts recomendados

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;
}
 

 

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...