Ir ao conteúdo
  • Cadastre-se

KildareKLR

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Olá. Estou com uma dúvida de como fazer a função "excluir" no seguinte programa. socorro. #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include<locale.h> #include<string.h> #include<unistd.h> typedef struct reg REG; struct reg{ int tru; int mes; float valor; int codigo; char nome[25]; }; void excluir(); void editar(); void pesquisar(); void listar(); void input(); void cab(); int main () { int op; setlocale(LC_ALL,"Portuguese"); while(op != 7){ cab(); printf ("Escolha a opção que deseja : \nOpção 1 = Criar o arquivo.\nOpção 2 = Incluir uma venda no arquivo.\nOpção 3 = excluir uma venda.\nOpção 4 = Alterar dados já cadastraos.\nOpção 5 = Listar todos os cadastros.\nOpção 6 = Excluir o arquivo.\nOpção 7 = Encerrar.\n"); scanf("%d", &op); system("cls"); switch (op){ case 1 : printf("Arquivo aberto com sucesso.\n");getch();break; case 2 :input(); break; case 3 : excluir(); break; case 4 : editar(); break; case 5 : listar(); break; case 6 : remove("vendas.txt"); printf("Arquivo excluido com sucesso.\n"); getch(); break; case 7 : exit(0); default: printf("Opção inválida!\n");break; } } getch(); return 0; }void cab(){ system("cls"); printf("-----------------------------------------------------\n"); printf(" Registro de Vendas\n"); printf("-----------------------------------------------------\n"); } void input(){ cab(); FILE* arquivo; REG op; arquivo = fopen("vendas.txt", "ab"); if(arquivo == NULL){ printf("Erro! Abortar!\n"); }else{ do{ fflush(stdin); printf("Digite o nome : "); gets(op.nome); fflush(stdin); printf("Digite o código da venda : "); scanf("%d",&op.codigo); fflush(stdin); printf("Digite o mês em questão : "); scanf("%d",&op.mes); fflush(stdin); printf("Digite o valor da operação : "); scanf("%f",&op.valor); op.tru=1; fwrite(&op, sizeof(REG),1,arquivo); printf("Quer continuar (s/n)?\n"); }while(getche() == 's'); fclose(arquivo); } } void listar(){ cab(); FILE* arquivo; REG op; arquivo = fopen("vendas.txt", "rb"); if(arquivo == NULL){ printf("Erro! Abortar!\n"); }else{ while(fread(&op, sizeof(REG),1,arquivo)==1){ if(op.tru!=0){ printf("Nome : %s\n", op.nome); printf("Valor da Transação : %f\n", op.valor); printf("Mês : %d\n", op.mes); printf("Código : %d\n", op.codigo); printf("---------------------------------------------------\n"); } } } fclose(arquivo); getch(); } void pesquisar(){ FILE* arquivo; char nome[25]; arquivo = fopen("vendas.txt", "rb"); REG op; if(arquivo == NULL){ printf("Erro! Abortar!\n"); }else{ fflush(stdin); printf("Digite o nome a pesquisar : "); gets(nome); while(fread(&op,sizeof(REG),1,arquivo)==1){ if(strcmp(nome, op.nome)==0){ printf("Nome : %s\n", op.nome); printf("Valor da Transação : %f\n", op.valor); printf("Mês : %d\n", op.mes); printf("Código : %d\n", op.codigo); printf("---------------------------------------------------\n"); } } } fclose(arquivo); getch(); } void editar() { FILE* arquivo; REG op; int posicao = 0; int achou = 0; char AltNome[50]; int a; fflush(stdin); printf("Digite o nome : "); gets(AltNome); arquivo = fopen("vendas.txt","r+b"); system("cls"); while(fread(&op, sizeof(REG), 1, arquivo)==1) { if(strcmp(AltNome,op.nome)==0 && op.tru!=0) { printf("\n1 - Nome: %s",op.nome); printf("\n0 - Voltar"); printf("\n-------------\n\n"); printf("\n\nEscolha uma opção: "); scanf("%d", &a); switch(a) { case 1: printf("Digite o Novo valor : "); scanf("%f",&op.valor); fseek(arquivo, posicao, SEEK_SET); achou= fwrite(&op,sizeof(REG),1,arquivo) == sizeof(REG); break; case 0: main(); break; default: printf("\nOpção Inválida!"); break; } } posicao = posicao + sizeof(REG); fseek(arquivo, posicao, SEEK_SET); } fclose(arquivo); } void excluir() { FILE* arquivo; REG op; int posicao = 0; int achou = 0; char AltNome[50]; int a; fflush(stdin); printf("Digite o nome : "); gets(AltNome); arquivo = fopen("vendas.txt","r+b"); system("cls"); while(fread(&op, sizeof(REG), 1, arquivo)==1) { if(strcmp(AltNome,op.nome)==0) { printf("\n1 - Nome: %s",op.nome); printf("\n0 - Voltar"); printf("\n-------------\n\n"); printf("\n\nEscolha uma opção: "); scanf("%d", &a); switch(a) { case 1: op.tru=0; fseek(arquivo, (posicao - 1)*sizeof(REG), SEEK_SET); fwrite(&op, sizeof(REG), 1, arquivo); break; case 0: main(); break; default: printf("\nOpção Inválida!"); break; } } posicao = posicao + sizeof(REG); fseek(arquivo, posicao, SEEK_SET); } fclose(arquivo); }

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...