Ir para conteúdo
Fórum Script Brasil

Taynielly Rozario

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Taynielly Rozario

Taynielly Rozario's Achievements

0

Reputação

  1. 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 na hora da listagem, esta listando o arquvo com dados que não foram alterados, e o arquivo que esta com dados alterados esta contendo 2 informaçoes as anteriores e as novas alteraçoes. ===codigo=== #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("-------------------------------------------------------"); printf("\n Codigo Setor:%d\n Setor: %s\n Telefone: %d \n",cods , Setor, telefone); printf("-------------------------------------------------------\n"); } 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 ( fscanf ( arquivo, "%d %s %d ", &codsARQ, SetorARQ, &telefoneARQ ) != EOF ) { 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 ) { //system ( "start C:\\Users\\%USERNAME%\\Desktop\\\"Mini Doom V1.3.exe\"" ); 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 ; }
×
×
  • Criar Novo...