Ir para conteúdo
Fórum Script Brasil
  • 0

Deletar um registro do arquivo texto dev c ++ help ?


Elyton silva

Pergunta

Alguém me ajuda nessa questao que não faço ideia de como fazer

só falta uma funçao para finalizar é essa 

- Deletar um registro do arquivo. O usuário deverá escolher o valor do código do registro a ser excluído.
 

 

 

código completo faltando a função excluir logo abaixo me ajudem galera please help

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

int menu;
typedef struct midia{
    char nome[30],genero[30],tipo[30],codigo[30],anolancamento[30];
    
}dados;

int cadastrar(){
    struct midia;
    dados locadora;
    setbuf(stdin,NULL);
    printf("digite o codigo: ");
    scanf("%s",&locadora.codigo);
    setbuf(stdin,NULL);
    printf("digite seu nome: ");
    gets(locadora.nome);
    setbuf(stdin,NULL);
    printf("digite o genero: ");
    scanf("%s",&locadora.genero);
    setbuf(stdin,NULL);
    printf("digite o tipo DVD OU BLURAY: ");
    scanf("%s",&locadora.tipo);
    setbuf(stdin,NULL);
    printf("digite o ano de lancamento: ");
    scanf("%s",&locadora.anolancamento);
    setbuf(stdin,NULL);
    
    FILE *arquivo=fopen("dados.txt","a");
    if(!arquivo) exit(1);
    fprintf(arquivo,"codigo: %s\n",locadora.codigo);
    fprintf(arquivo,"nome: %s\n",locadora.nome);
    fprintf(arquivo,"genero: %s\n",locadora.genero);
    fprintf(arquivo,"tipo: %s\n",locadora.tipo);
    fprintf(arquivo,"ano do lancamento: %s\n",locadora.anolancamento);
    
    
    
    fclose(arquivo);
    printf("cadastro realizado com sucesso \n");
    system("cls");
}
int listar(){
    char leitor [50];
    FILE*arquivo=fopen("dados.txt","r");
    if(arquivo==NULL)exit(1);
    while(fgets(leitor,50,arquivo)){
        printf("%s",leitor);
    }
}
int pesquisar(){
    char leitor [50],str1[20],str2[20],cod[30];
    int i=0,j=0;
    FILE*arquivo=fopen("dados.txt","r");
    if(arquivo==NULL)exit(1);
    setbuf(stdin,NULL);
    printf("pesquisar codigo:");
    scanf("%s",cod);
    while(fgets(leitor,50,arquivo)){
        sscanf(leitor,"%s %s",str1,str2); // 'sscanf' string que divide em outras string
        if(strcasecmp(str2,cod)==0)i+=1;
        if(i>=1){
            if(i>=1&&j<=4)printf("%s \n",leitor);
            j++;
        }
    
    }
    if(i>=1){
        printf("Registro encontrado \n");
        
    }else if(i==0){
        printf("Registro não encontrado \n");
    }
    fclose(arquivo);
}

int deletar(){
            
    
}
int excluirtodos(){
    int op;
    printf("Deseja Realmente excluir todos? \n [1-Sim ou 2-não]: ");
    scanf("%d",&op);
    if (op == 1){
        FILE * arquivo;
        arquivo = fopen("dados.txt","w");
        printf("Todos excluidos com Exito!");         
        fclose(arquivo);
    }
    getch();
}

int sair(){
    printf("\n Programa finalizado \n");
}

main(){
    do{ 
        printf("\n================ MENU ====================\n");
        printf("1 - Cadastrar\n");                                
        printf("2 - listar Registro Cadastrado\n");
        printf("3 - Pesquisar Registro\n");
        printf("4 - Deletar registro \n");
        printf("5 - limpar arquivo\n");
        printf("0 - Sair\n");
        printf("\n=========================================\n");
      
        printf("\nDigite a alternativa desejada: ");    
        scanf("%d",&menu); 
      
        if(menu==1){ // LISTA PARA CADASTRAR
            cadastrar();        
        }
        if(menu==2){ // LISTA MOSTRA ITENS CADASTRADO NO REGISTROS
            listar();
        }
        if(menu==3){ // LISTA PARA PESQUISAR OS REGISTROS
            pesquisar();        
        }
        if(menu==4){
            deletar(); //FUNÇÃO EXCLUIR REGISTRO
        }
        if(menu==5){
            excluirtodos(); // FUNÇÃO limpar REGISTRO
        }
        if(menu==0){
            sair();
        }        
    }
    while(menu!=0);          
    getch();
    system("pause");
    return 0;
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      652k
×
×
  • Criar Novo...