Ir ao conteúdo

Posts recomendados

Postado

 

Olá rapaziada, preciso de uma ajuda. estou programando para um projeto, e so preciso finalizar a parte de alterar, so que to tendo muita dificuldade.

preciso alterar no .txt uma linha especifica, tipo: Nome ou idade

preciso de alguma forma que va dentro do switch

 

 

 

 

 

 

 

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>


int main(){
    
    FILE *lista_cliente;
    FILE *lista_produtos;
    FILE *lista_transacoes;
    FILE *lista_vendas;
    
    int num, num2;
    
    
system("COLOR 71");
setlocale(LC_ALL, "Portuguese");
//////////////////////////////// CLIENTE //////////////////////////////////
        
        
     while(num!=4){
         system("cls");
         printf("\t\t\tLOJA HOLISTER\n\n\n");
         printf("1-CLIENTE\n2-PRODUTO\n3-COMPRA/VENDA\n");
         printf("\t\t\tQUAL OPÇÃO O SENHOR DESEJA? ");
        scanf("%d", &num);
    
         switch(num){
             case 1:
             system("cls");
             printf("1-CRIAR UM CLIENTE\n2-BUSCAR UM CLIENTE NA LISTA\n3-ATUALIZAR UM CLIENTE\n4-DELETAR UM CLIENTE");
             scanf("%d", &num2);
             
             switch(num2){
                 case 1:
                     system("cls");
                     printf("\t\tCLIENTE\n\n");
                     lista_cliente = fopen("Lista_Cliente.txt", "a");
                     
                     struct dados_cliente{
                         char nome[50];
                         char idade[50];
                         char cpf[50];
                     };
                     
                     struct dados_cliente cliente;
                     
                     printf("NOME DO CLIENTE: ");
                     scanf("%s", &cliente.nome);
                
                     
                     printf("\nIDADE: ");
                     scanf("%s", &cliente.idade);
                     getchar();
                    
                     printf("\nCPF:  ");
                     scanf("%s", &cliente.cpf);
                     
                     
                     fprintf(lista_cliente, "%s\n %s\n %s  ", cliente.nome, cliente.idade, cliente.cpf);
                     fclose(lista_cliente);
                     
                     system("pause");
                     
                     break;
                     
                     
                     case 2:
                         system("cls");
                         printf("\t\tEXIBINDO CADASTRO...\n");
                         lista_cliente = fopen ("Lista_Cliente.txt", "r");
                         
                         
                         while(fscanf(lista_cliente, "%s%s%s", cliente.nome, cliente.idade, cliente.cpf)!= -1){
                             printf("NOME DO CLIENTE: %s\nIDADE: %s\nCPF: %s\n", cliente.nome, cliente.idade, cliente.cpf);
                             system("Pause");
                             getchar();
                             
                         }
                         
                         
                         fclose(lista_cliente);
                         break;
                         
                    case 3:
                        system("cls");
                    
                        
                       fclose(lista_cliente);

                        break;
                    case 4:
                        system("cls");
                        int op;
                        printf("DESEJA REALMENTE EXCLUIR TUDO? \n1 - EXCLUIR TUDO\n 2 - NÃO EXCLUIR");
                        scanf("%d", &op);
                        if(op == 1){
                            struct midia;
                            lista_cliente = fopen("Lista_Cliente.txt", "w");
                            printf("TODOS DADOS FORAM EXCLUIDOS...\n");
                            fclose(lista_cliente);
                            getchar();    
                            
                        }
                        
                        break;
                        
                        /////////////////////////////// PRODUTO /////////////////////////////////////////
                        
                break;
             }
             
            break;
                case 2:
                    system("cls");
                    printf("1 - CRIAR UM PRODUTO\n");
                    printf("2 - BUSCAR UM PRODUTO\n");
                    printf("3 - ATUALIZAR UM PRODUTO\n");
                    printf("4 - DELETAR UM PRODUTO\n");
                    scanf("%d", &num2);
                    
                    switch(num2){
                        case 1:
                            system("cls");
                            printf("\tPRODUTO...\n");
                            lista_produtos = fopen("Lista_Produto.txt", "a");
                            
                            struct dados_produtos{
                                char produtoD[50];
                                char codigoD[50];
                            };
                            
                            struct dados_produtos produtos;
                            
                            printf("\nNOME DO PRODUTO: ");
                            scanf("%s", &produtos.produtoD);
                            
                            printf("\nCODIGO DO PRODUTO: ");
                            scanf("%s", &produtos.codigoD);
                            
                            fprintf(lista_produtos, "%s\n%s\n", produtos.produtoD, produtos.codigoD);
                            fclose(lista_produtos);
                    break;    
                    
                    break;
                    case 2:
                        system("cls");
                        printf("\tEXIBINDO CADASTRO...\n");
                        lista_produtos = fopen("Lista_Produto.txt", "r");
                        
                        while(fscanf(lista_produtos, "%s\n%s\n", produtos.produtoD, produtos.codigoD)!= -1){
                            printf("NOME DO PRODUTO: %s\nCODIGO DO PRODUTO: %s\n", produtos.produtoD, produtos.codigoD);
                            system("pause");
                        }
                        
                        fclose(lista_produtos);
                        
                        break;
                        break;
                        
                    case 3:
                        system("cls");
                
                        break;
                        
                        
                        
                    case 4:
                    system("cls"); 
                    int op2;
                    printf("DESEJA REALMENTE EXCLUIR TUDO?\n1 - EXCLUIR TUDO\n2 - NÃO EXCLUIR");
                    scanf("%d", &op2);
                    if(op2 == 1){
                        struct midia;
                        lista_produtos = fopen("Lista_Produto.txt", "w");
                        printf("TODOS DADOS FORAM EXCLUIDOS...");
                        fclose(lista_produtos);
                    }
                    
                    break;
                    }
                    break;
                    break;
                    //////////////////////////////////////// COMPRA/VENDAS ////////////////////
                    case 3:
                        system("cls");
                        printf("ESCOLHA:\n1- COMPRA\n2 - VENDA");
                        scanf("%d", &num2);
                        
                        switch(num2){
                            case 1:
                                system("cls");
                                printf("COMPRA...\n");
                                printf("1 - CRIAR UMA COMPRA\n2 - BUSCAR UMA COMPRA NA LISTA\n3 - MODIFICAR UMA COMPRA\n4 - DELETAR UMA COMPRA");
                                scanf("%d", &num2);
                                
                                
                                switch(num2){
                                    case 1:
                                        system("cls");
                                        printf("\tCOMPRA...\n");
                                        lista_transacoes = fopen("Lista_Transacoes.txt", "a");
                                        
                                        struct dados_compras{
                                            char modeloC[50];
                                            char unidadeC[50];
                                            char pagamentoC[50];
                                        };
                                        
                                        struct dados_compras compras;
                                        
                                        printf("MODELO DO PRODUTO: ");
                                        scanf("%s", &compras.modeloC);
                                        
                                        printf("QUANTAS UNIDADES DESEJA: ");
                                        scanf("%s", &compras.unidadeC);
                                        
                                        printf("FORMA DE PAGAMENTO: ");
                                        scanf("%s", &compras.pagamentoC);
                                        
                                        fprintf(lista_transacoes, "%s %s %s", compras.modeloC, compras.unidadeC, compras.pagamentoC);
                                        fclose(lista_transacoes);
                                        
                                        break;
                                        
                                        
                                    case 2:
                                        system("cls");
                                        printf("\tEXIBINDO COMPRAS...\n");
                                        lista_transacoes = fopen("Lista_Transacoes.txt", "r");
                                        
                                        while(fscanf(lista_transacoes, "%s%s%s", compras.modeloC, compras.unidadeC, compras.pagamentoC)!= -1){
                                            printf("MODELO DO PRODUTO: %s\nQUANTAS UNIDADES DESEJA: %s\nFORMA DE PAGAMENTO: %s\n", compras.modeloC, compras.unidadeC, compras.pagamentoC);
                                            system("pause");
                                        }
                                        
                                        fclose(lista_transacoes);
                                        
                                        break;
                                        
                                        
                                    //case 3:
                                    
                                    case 4:
                                        system("cls");
                                        int op3;
                                        printf("DESEJA REALMENTE EXCLUIR TUDO? 1 - EXCLUIR TUDO 2 - NÃO EXCLUIR");
                                        scanf("%d", &op3);
                                        if(op3 == 1){
                                            struct midia;
                                            lista_transacoes = fopen("Lista_Transacoes.txt", "w");
                                            printf("TODOS DADOS FORAM EXCLUIDOS...\n");
                                            system("pause");
                                            fclose(lista_transacoes);
                                            
                                        }
                                        
                                        break;
                                    
                                }
                        break;
                                   case 2:
                                       system("cls");
                                       printf("\tVENDAS...\n");
                                       printf("1 - CRIAR UMA VENDA\n2 - BUSCAR UMA VENDA NA LISTA\n3 - MODIFICAR UMA VENDA\n4 - DELETAR UMA VENDA\n");
                                       scanf("%d", &num2);
                                       
                                       switch(num2){
                                           case 1:
                                               system("cls");
                                               printf("\tVENDAS...\n");
                                               
                                               lista_vendas = fopen("Lista_Vendas.txt", "a");
                                               
                                               struct dados_vendas{
                                                   char nome[50];
                                                   char modeloV[50];
                                                   char unidadesV[50];
                                                   char pagamentoV[50];
                                               };
                                               
                                               struct dados_vendas vendas;
                                               
                                               printf("SEU NOME: ");
                                               scanf("%s", &vendas.nome);
                                               
                                               printf("MODELO: ");
                                               scanf("%s", &vendas.modeloV);
                                               
                                               printf("UNIDADES A VENDER: ");
                                               scanf("%s", &vendas.unidadesV);
                                               
                                               printf("FORMAS DE PAGAMENTO: ");
                                               scanf("%s", &vendas.pagamentoV);
                                               
                                               fprintf(lista_vendas, "%s\n%s\n%s\n%s\n", vendas.nome, vendas.modeloV, vendas.unidadesV, vendas.pagamentoV);
                                               fclose(lista_vendas);
                                               
                                               break;
                                               
                                        case 2:
                                            system("cls");
                                            printf("EXIBINDO VENDAS...");
                                            lista_vendas = fopen("Lista_Vendas.txt", "r");
                                            
                                            while(fscanf(lista_vendas, "%s\n%s\n%s\n%s", vendas.nome, vendas.modeloV, vendas.unidadesV, vendas.pagamentoV)!= -1){
                                                printf("SEU NOME: %s\nMODELO: %s\nUNIDADES A VENDER: %s\nFORMAS DE PAGAMENTO: %s\n", vendas.nome, vendas.modeloV, vendas.unidadesV, vendas.pagamentoV);
                                                system("pause");
                                            }
                                            fclose(lista_vendas);
                                            
                                            break;
                                            
                                            
                                        //case 3:    
                                        
                                        case 4:
                                            system("cls");
                                            int op4;
                                            printf("DESEJA REALMENTE EXCLUIR TODOS DADOS? 1 - EXCLUIR TUDO 2 - NÃO EXCLUIR");
                                            scanf("%d", &op4);
                                            if(op4 == 1){
                                                struct midia;
                                                lista_vendas = fopen("Lista_Vendas.txt", "w");
                                                printf("TODOS DADOS FORAM EXCLUIDOS...");
                                                system("pause");
                                                fclose(lista_vendas);
                                            }
                                            
                                            break;
                                       }
                                       break;
                        }
                        
                        
                 }
                
                    
                
                               }
                            
                                
                    }
        
                    
    
        
 
       
     
     

    
    
    
    
    
    
    
    
    
    
    <>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
 

  • Curtir 1
Postado
3 horas atrás, Gabriel213412 disse:

preciso alterar no .txt uma linha especifica, tipo: Nome ou idade

preciso de alguma forma que va dentro do switch

 

Seria muito mais simples

  • acessar o arquivo em modo binário e calcular a posição no disco em que precisa alterar, ou
  • usar uma estrutura de dados e carregar os dados para a memória, no todo ou em parte. Num programa de estudante simplesmente carregue tudo. No início verifique se já tem dados e carregue pra memória. No final mude a extensão do arquivo para algo como .bak. E salve os dados com o nome original.

Seu programa não está bom. Tem quase todos os problemas comuns. E recortar e colar uma série de menus iguais dentro de um loop imenso que incorposa o programa todo não vai ajudar nadinha na hora de testar isso, como está vendo.

 

Mais palpites: navegar por menus em um programa de 500 linhas não acrescenta quase nada. Nem esses 4 ponteiros globais para arquivos. Estruture os dados ANTES de escrever o programa. Escrever assim só atrasa, apesar de ser o modo comum de escrever, ao menos pelo que vemos nos forums e escolas;

 

Tire essa conio.h daí. Isso era antigo nos anos ´80. Não é possível que se precise disso ainda, 40 anos depois, portado do sw da Apple nos tempos do Apple II, depois portado para o sw da Borland que vinha em dois disketes de 5.25"  😉  

 

E seu programa não tem uma única função. Só dificulta muito as coisas.

  • use funções e argumentos
  • programe em torno dos dados
  • não misture entrada e saída com o código. Só complica pra você mesmo.
  • Nunca escreva um programa interativo. Mais problema. Coloque isso DEPOIS.

 

USE o botão code como explicado no primeiro post do forum. 

 

Veja a diferença

 

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>

int main() {

  FILE *lista_cliente;
  FILE *lista_produtos;
  FILE *lista_transacoes;
  FILE *lista_vendas;

  int num, num2;

  system("COLOR 71");
  setlocale(LC_ALL, "Portuguese");
  //////////////////////////////// CLIENTE //////////////////////////////////

  while (num != 4) {
    system("cls");
    printf("\t\t\tLOJA HOLISTER\n\n\n");
    printf("1-CLIENTE\n2-PRODUTO\n3-COMPRA/VENDA\n");
    printf("\t\t\tQUAL OPÇÃO O SENHOR DESEJA? ");
    scanf("%d", &num);

    switch (num) {
    case 1:
      system("cls");
      printf("1-CRIAR UM CLIENTE\n2-BUSCAR UM CLIENTE NA LISTA\n3-ATUALIZAR UM "
             "CLIENTE\n4-DELETAR UM CLIENTE");
      scanf("%d", &num2);

      switch (num2) {
      case 1:
        system("cls");
        printf("\t\tCLIENTE\n\n");
        lista_cliente = fopen("Lista_Cliente.txt", "a");

        struct dados_cliente {
          char nome[50];
          char idade[50];
          char cpf[50];
        };

        struct dados_cliente cliente;

        printf("NOME DO CLIENTE: ");
        scanf("%s", &cliente.nome);

        printf("\nIDADE: ");
        scanf("%s", &cliente.idade);
        getchar();

        printf("\nCPF:  ");
        scanf("%s", &cliente.cpf);

        fprintf(lista_cliente, "%s\n %s\n %s  ", cliente.nome, cliente.idade,
                cliente.cpf);
        fclose(lista_cliente);

        system("pause");

        break;

      case 2:
        system("cls");
        printf("\t\tEXIBINDO CADASTRO...\n");
        lista_cliente = fopen("Lista_Cliente.txt", "r");

        while (fscanf(lista_cliente, "%s%s%s", cliente.nome, cliente.idade,
                      cliente.cpf) != -1) {
          printf("NOME DO CLIENTE: %s\nIDADE: %s\nCPF: %s\n", cliente.nome,
                 cliente.idade, cliente.cpf);
          system("Pause");
          getchar();
        }

        fclose(lista_cliente);
        break;

      case 3:
        system("cls");

        fclose(lista_cliente);

        break;
      case 4:
        system("cls");
        int op;
        printf("DESEJA REALMENTE EXCLUIR TUDO? \n1 - EXCLUIR TUDO\n 2 - NÃO "
               "EXCLUIR");
        scanf("%d", &op);
        if (op == 1) {
          struct midia;
          lista_cliente = fopen("Lista_Cliente.txt", "w");
          printf("TODOS DADOS FORAM EXCLUIDOS...\n");
          fclose(lista_cliente);
          getchar();
        }

        break;

        /////////////////////////////// PRODUTO
        ////////////////////////////////////////////

        break;
      }

      break;
    case 2:
      system("cls");
      printf("1 - CRIAR UM PRODUTO\n");
      printf("2 - BUSCAR UM PRODUTO\n");
      printf("3 - ATUALIZAR UM PRODUTO\n");
      printf("4 - DELETAR UM PRODUTO\n");
      scanf("%d", &num2);

      switch (num2) {
      case 1:
        system("cls");
        printf("\tPRODUTO...\n");
        lista_produtos = fopen("Lista_Produto.txt", "a");

        struct dados_produtos {
          char produtoD[50];
          char codigoD[50];
        };

        struct dados_produtos produtos;

        printf("\nNOME DO PRODUTO: ");
        scanf("%s", &produtos.produtoD);

        printf("\nCODIGO DO PRODUTO: ");
        scanf("%s", &produtos.codigoD);

        fprintf(lista_produtos, "%s\n%s\n", produtos.produtoD,
                produtos.codigoD);
        fclose(lista_produtos);
        break;

        break;
      case 2:
        system("cls");
        printf("\tEXIBINDO CADASTRO...\n");
        lista_produtos = fopen("Lista_Produto.txt", "r");

        while (fscanf(lista_produtos, "%s\n%s\n", produtos.produtoD,
                      produtos.codigoD) != -1) {
          printf("NOME DO PRODUTO: %s\nCODIGO DO PRODUTO: %s\n",
                 produtos.produtoD, produtos.codigoD);
          system("pause");
        }

        fclose(lista_produtos);

        break;
        break;

      case 3:
        system("cls");

        break;

      case 4:
        system("cls");
        int op2;
        printf("DESEJA REALMENTE EXCLUIR TUDO?\n1 - EXCLUIR TUDO\n2 - NÃO "
               "EXCLUIR");
        scanf("%d", &op2);
        if (op2 == 1) {
          struct midia;
          lista_produtos = fopen("Lista_Produto.txt", "w");
          printf("TODOS DADOS FORAM EXCLUIDOS...");
          fclose(lista_produtos);
        }

        break;
      }
      break;
      break;
    //////////////////////////////////////// COMPRA/VENDAS ////////////////////
    case 3:
      system("cls");
      printf("ESCOLHA:\n1- COMPRA\n2 - VENDA");
      scanf("%d", &num2);

      switch (num2) {
      case 1:
        system("cls");
        printf("COMPRA...\n");
        printf("1 - CRIAR UMA COMPRA\n2 - BUSCAR UMA COMPRA NA LISTA\n3 - "
               "MODIFICAR UMA COMPRA\n4 - DELETAR UMA COMPRA");
        scanf("%d", &num2);

        switch (num2) {
        case 1:
          system("cls");
          printf("\tCOMPRA...\n");
          lista_transacoes = fopen("Lista_Transacoes.txt", "a");

          struct dados_compras {
            char modeloC[50];
            char unidadeC[50];
            char pagamentoC[50];
          };

          struct dados_compras compras;

          printf("MODELO DO PRODUTO: ");
          scanf("%s", &compras.modeloC);

          printf("QUANTAS UNIDADES DESEJA: ");
          scanf("%s", &compras.unidadeC);

          printf("FORMA DE PAGAMENTO: ");
          scanf("%s", &compras.pagamentoC);

          fprintf(lista_transacoes, "%s %s %s", compras.modeloC,
                  compras.unidadeC, compras.pagamentoC);
          fclose(lista_transacoes);

          break;

        case 2:
          system("cls");
          printf("\tEXIBINDO COMPRAS...\n");
          lista_transacoes = fopen("Lista_Transacoes.txt", "r");

          while (fscanf(lista_transacoes, "%s%s%s", compras.modeloC,
                        compras.unidadeC, compras.pagamentoC) != -1) {
            printf("MODELO DO PRODUTO: %s\nQUANTAS UNIDADES DESEJA: %s\nFORMA "
                   "DE PAGAMENTO: %s\n",
                   compras.modeloC, compras.unidadeC, compras.pagamentoC);
            system("pause");
          }

          fclose(lista_transacoes);

          break;

        // case 3:

        case 4:
          system("cls");
          int op3;
          printf("DESEJA REALMENTE EXCLUIR TUDO? 1 - EXCLUIR TUDO 2 - NÃO "
                 "EXCLUIR");
          scanf("%d", &op3);
          if (op3 == 1) {
            struct midia;
            lista_transacoes = fopen("Lista_Transacoes.txt", "w");
            printf("TODOS DADOS FORAM EXCLUIDOS...\n");
            system("pause");
            fclose(lista_transacoes);
          }

          break;
        }
        break;
      case 2:
        system("cls");
        printf("\tVENDAS...\n");
        printf("1 - CRIAR UMA VENDA\n2 - BUSCAR UMA VENDA NA LISTA\n3 - "
               "MODIFICAR UMA VENDA\n4 - DELETAR UMA VENDA\n");
        scanf("%d", &num2);

        switch (num2) {
        case 1:
          system("cls");
          printf("\tVENDAS...\n");

          lista_vendas = fopen("Lista_Vendas.txt", "a");

          struct dados_vendas {
            char nome[50];
            char modeloV[50];
            char unidadesV[50];
            char pagamentoV[50];
          };

          struct dados_vendas vendas;

          printf("SEU NOME: ");
          scanf("%s", &vendas.nome);

          printf("MODELO: ");
          scanf("%s", &vendas.modeloV);

          printf("UNIDADES A VENDER: ");
          scanf("%s", &vendas.unidadesV);

          printf("FORMAS DE PAGAMENTO: ");
          scanf("%s", &vendas.pagamentoV);

          fprintf(lista_vendas, "%s\n%s\n%s\n%s\n", vendas.nome, vendas.modeloV,
                  vendas.unidadesV, vendas.pagamentoV);
          fclose(lista_vendas);

          break;

        case 2:
          system("cls");
          printf("EXIBINDO VENDAS...");
          lista_vendas = fopen("Lista_Vendas.txt", "r");

          while (fscanf(lista_vendas, "%s\n%s\n%s\n%s", vendas.nome,
                        vendas.modeloV, vendas.unidadesV,
                        vendas.pagamentoV) != -1) {
            printf("SEU NOME: %s\nMODELO: %s\nUNIDADES A VENDER: %s\nFORMAS DE "
                   "PAGAMENTO: %s\n",
                   vendas.nome, vendas.modeloV, vendas.unidadesV,
                   vendas.pagamentoV);
            system("pause");
          }
          fclose(lista_vendas);

          break;

        // case 3:

        case 4:
          system("cls");
          int op4;
          printf("DESEJA REALMENTE EXCLUIR TODOS DADOS? 1 - EXCLUIR TUDO 2 - "
                 "NÃO EXCLUIR");
          scanf("%d", &op4);
          if (op4 == 1) {
            struct midia;
            lista_vendas = fopen("Lista_Vendas.txt", "w");
            printf("TODOS DADOS FORAM EXCLUIDOS...");
            system("pause");
            fclose(lista_vendas);
          }

          break;
        }
        break;
      }
    }
  }
}

 

 

  • Obrigado 1

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!