Ir ao conteúdo
  • Cadastre-se

FgD

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

Reputação

1
  1. Desculpa a demora haha, eu tentei adicionar mas não funcionou. Continua alterando apenas o primeiro carro cadastrado com o nome que eu procuro. A função do meu código de adicionar carros no txt é essa: void inputCarro(){ FILE* carros; CARROS car; int opCarro; carros = fopen("carros.txt", "a"); if(carros == NULL){ printf("PROBLEMAS NA ABERTURA DO ARQUIVO 'CARROS'. POR FAVOR CONTATAR O RESPONSÁVEL PELO PROGRAMA!\n\n"); system("pause"); exit(0); }else{ printf("Modelo: "); scanf(" %[^\n]s", &car.modelo); printf("Placa: "); scanf(" %[^\n]s", &car.placa); printf("Ano: "); scanf("%d", &car.ano); printf("Cor: "); scanf(" %[^\n]s", &car.cor); car.alugado = 'N'; car.status = 'S'; car.taxa = 10; printf("As informações acimas estão corretas?\n"); printf("\nDigite '1' para progesseguir\n"); printf("Digite '2' para cancelar\n"); scanf(" %d", &opCarro); if (opCarro == 1){ fwrite(&car, sizeof(CARROS), 1, carros); fclose(carros); system("cls"); printf("Carro adicionado com sucesso!"); getch(); } } } E a struct "carros" é essa: typedef struct carros CARROS; struct carros{ char modelo[15]; char placa[8]; int ano; char cor[20]; char alugado; char status; double taxa; };
  2. Olá, estou tendo dificuldades em um código para um trabalho de faculdade. O código que eu fiz é para rodar linha por linha de um arquivo .txt onde estão armazenados carros e alterar todas as taxas de locação dos carros que tiverem a mesma marca. O programa roda sem problema algum quando há apenas um carro com a mesma marca, agora quando há mais de um carro cadastrado com a mesma marca, só o primeiro é alterado. Alguma ideia do porquê isto está acontecendo? (Caso seja preciso a função de cadastrar o carro ou/e o arquivo .txt, posso postá-los a seguir) void alterarTaxas(){ FILE* carros; CARROS car; char modelo[15]; long pos; int taxa; carros = fopen("carros.txt", "r+"); if(carros == NULL){ printf("PROBLEMAS NA ABERTURA DO ARQUIVO 'CARROS'. POR FAVOR CONTATAR O RESPONSÁVEL PELO PROGRAMA!\n\n"); system("pause"); exit(0); }else{ printf("Digite o modelo do carro para alterar sua taxa: "); scanf(" %s", &modelo); while(fread(&car, sizeof(CARROS), 1, carros) == 1){ if(strcmp(modelo, car.modelo) == 0){ taxa = car.taxa; } } printf("A taxa é %d, Digite o valor da nova taxa: ", taxa); scanf(" %d", &taxa); fseek(carros, 0, SEEK_SET); pos = ftell(carros); while(fread(&car, sizeof(CARROS), 1, carros) == 1){ if(strcmp(modelo, car.modelo) == 0){ car.taxa = taxa; fseek(carros, pos, SEEK_SET); fwrite(&car, sizeof(CARROS), 1, carros); } pos = ftell(carros); } fclose(carros); getch(); } }
  3. Adicionei aqui ao programa e funcionou sim. Muito obrigado! Eu sou novo ainda na programação em C, então estou lutando pra aprender a linguagem haha valeu mesmo!
  4. Quando eu crio um cliente, eu defino ela como sendo "char ativo = 'S'", e uso a função acima para tentar modificar ela para 'N'. Mas ela permanece sendo 'S'.
  5. Olá, estou tendo dificuldades em um código para um trabalho de faculdade. Eu tenho que fazer um código para cadastro/procura/listagem/exclusão de clientes. A parte de cadastro/procura/listagem está pronta, mas estou tendo problemas com a exclusão de um cliente. A minha ideia é a seguinte: - O usuário irá procurar o cliente que quer deletar pelo seu cpf. - Adicionei uma variável a struct de cliente chamada "ativo". - Quando essa variável for 's' o programa vai listar e procurar por esse cliente, e quando essa variável for 'n' o programa vai ignorar esse cliente (dando a impressão de que o cliente foi excluído). O problema é que eu não estou conseguindo alterar essa variável do tipo char do meu .txt. Segue abaixo a função deletarCliente do meu programa, se possível poderiam apontar meu erro e me ajudar a compreende-lo? (Caso seja preciso a função de cadastrar o cliente ou/e o arquivo .txt, posso postá-los a seguir) void deletarCliente(){ FILE* clientes; CLIENTE clt; char cpf[15]; clientes = fopen("clientes.txt", "r+"); if(clientes == NULL){ printf("PROBLEMAS NA ABERTURA DO ARQUIVO 'CLIENTES'. POR FAVOR CONTATAR O RESPONSÁVEL PELO PROGRAMA!\n\n"); system("pause"); exit(0); }else{ printf("Digite o CPF do cliente a ser deletado: "); scanf(" %s", &cpf); while(fread(&clt, sizeof(CLIENTE), 1, clientes) == 1){ if(strcmp(cpf, clt.cpf) == 0){ clt.ativo = 'N'; fwrite(&clt, sizeof(CLIENTE), 1, clientes); } } fclose(clientes); getch(); } }

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