Ir ao conteúdo
  • Cadastre-se

C Como edita em arquivo binário?


Posts recomendados

To tentando aprender usar struct, não consegui fazer ele editar somente listar e adicionar, como faz pra editar? tentei dessa forma
 

case '3':
        {
            system("cls");
            char clienteE[100][30];
            char newname[100][30];
            char armaz[100][30];
            clientes = fopen("cliente.dat","r+b");
            int cont;
            cont = fread(&armaz,sizeof(cadastro.cliente),sizeof(cadastro.numero),clientes);
            printf("Digite o nome do cliente: ");
            scanf("%s",&clienteE);
            for(int i = 0; i < cont; i++)
            {
            if(strcmp(clienteE,armaz[i]) == 0)
            {
                fseek(clientes,1,SEEK_CUR);
                printf("\nSeu cliente: %s\n",armaz[i]);
                printf("numero do cliente: %s",armaz[i+1]);
                printf("\n\n");
                printf("Digite o novo nome: ");
                scanf("%s",&newname);
                printf("\nNovo nome: %s\n", newname);
                strcpy(armaz[i],newname);
                fwrite(&cadastro.cliente[i],sizeof(armaz[i]),1,clientes); //cadastro.cliente(é o char da struct) 
                fclose(clientes);
                printf("\n\n\n");
                goto inicio;
            }
            }
        }


  Tentei usar fseek ali usando i em vez de 1 pra ele posicionar naquele local do arquivo pra fazer edição mas não deu certo

Link para o comentário
Compartilhar em outros sites

acho melhor você trabalhar como se fora uma planilha. OU seja, 

O programa abre o arquivo e carrega todos os dados num array de struct.

Aí você pode incluir, excluir, editar os dados da struct, um elemento de cada vez.

Depois ter uma função salvar, que resume-se a gravar o array de struct no arquivo.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...