FgD
Membro Júnior-
Posts
6 -
Cadastrado em
-
Última visita
Reputação
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; };
-
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(); } }
-
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!
-
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'.
-
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