Ir ao conteúdo
  • Cadastre-se

taynielly

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por taynielly

  1. 1 hora atrás, vangodp disse:

    Suponho que setor é um código único não?

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