Ir ao conteúdo
  • Cadastre-se

taynielly

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. sim. agradeço pela resposta. Vou trabalho melhor esses erros e ajusta-los. adicionado 10 minutos depois ficaria mais acesseviel trabalhar apenas um arquivo ao invés de criar outro para fazer a alteraçao, usei o criar 2 pois ficou mais fácil para mim. Qual seria a melhor forma de usar apenas 1
  2. Oi pessoal alguém pode me dar uma ideia sobre a questão abaixo. O assunto é arquivo, estou tentando fazer uma função para modificar(alterar) e excluir(remoçao) um registro do arquivo, porém nesse caso a funçao de modificar(alterar) esta dando erro. segue o codigo abaixo: Castro de setores.txt #include <stdio.h> #include <stdlib.h> //funçao para abir. FILE* AbreArquivo(char modo, char caminho[30]){ FILE *arquivo; switch(modo){ case 'g': arquivo = fopen(caminho,"wt"); // Gravaço break; case 'l': arquivo = fopen(caminho,"rt"); // leitura break; case 'a': arquivo = fopen(caminho,"a"); // anexar break; } if(arquivo==NULL){ printf("\nNao foi possivel abrir. \n Arquivo Inexistente"); exit(0); } return arquivo; } //funçao para fechar void FecharArquivo(FILE *arquivo){ fclose(arquivo); } //funçao para cadastrar void Cadastra(int cods, char Setor[30], int telefone){ FILE *arquivo; arquivo = AbreArquivo('a', "Setor.txt"); fprintf(arquivo, "%d %s %d\n", cods, Setor, telefone); FecharArquivo(arquivo); } //funçao para listar void Listar(){ FILE *arquivo; int cods; char Setor[30]; int telefone; arquivo = AbreArquivo('l',"Setor.txt"); while(!feof(arquivo)){ fscanf(arquivo,"%d %s %d ",&cods , &Setor, &telefone); printf("\nCodigo Setor:%d Setor: %s - Telefone: %d \n",cods , Setor, telefone); } FecharArquivo(arquivo); } //funçao para modificar(alterar). void Alteracao(int cods, char Setor[30], int telefone){ FILE *arquivo, *arquivo2; int codsARQ; char SetorARQ[30]; int telefoneARQ; arquivo = AbreArquivo('l',"Setor.txt"); arquivo2 = AbreArquivo('a',"Setor1.txt"); while(!feof(arquivo)){ fscanf(arquivo,"%d %s %d ",&codsARQ, &SetorARQ, &telefoneARQ); if(cods == codsARQ) fprintf(arquivo2, "%d %s %d\n", cods, Setor, telefone); else fprintf(arquivo2, "%d %s %d\n", codsARQ, SetorARQ, telefoneARQ); //printf("\nCodigo Setor:%d Setor: %s - Telefone: %d \n",cods , Setor, telefone); } FecharArquivo(arquivo); FecharArquivo(arquivo2); } int main(void){ int op; char Setor[30]; int telefone, cods; do{ system("cls"); printf("\t Bem Vindo. \n\n\t===Lista de Setores===\t"); printf("\n\t\tMENU\n"); printf("\n 1 - Cadastrar Setor e Telefone:"); printf("\n 2 - Listar todos os Setores e Telefones:"); printf("\n 3 - Alterar Setor e Telefone:"); printf("\n 4 - Remover Setor e Telefone:"); printf("\n 5 - Sair."); printf("\n"); printf("\nDigite um Numero: "); scanf("%d", &op); switch(op){ case 1: system("cls"); printf("\nDigite o Codigo do Setor: "); scanf("%d", &cods); printf("\nDigite o Setor: "); setbuf(stdin,NULL); gets(Setor); printf("\nDigite o telefone: "); scanf("%d", &telefone); Cadastra(cods, Setor, telefone); system("pause"); break; case 2: system("cls"); Listar(); system("pause"); break; case 3: system("cls"); printf("\nDigite o Codigo do Setor a ser alterado: "); scanf("%d", &cods); printf("\nDigite o novo Setor: "); setbuf(stdin,NULL); gets(Setor); printf("\nDigite o novo telefone: "); scanf("%d", &telefone); Alteracao(cods, Setor, telefone); system("pause"); break; case 4: break; case 5: printf("\n\nFinalizando...\n\n"); system("pause"); exit(0); break; default: printf("\n\nEscolha invalida! Tente Novamente!\n\n"); system("pause"); } }while(op!=5); return 0 ; }

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!