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();
}
}