Ir para conteúdo

arisuchan

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre arisuchan

  1. Estou validando os dados de um vetor de estruturas chamado avião. Como parâmetros, estou passando o vetor alocado com um número predefinido, um contador e a capacidade inicial do vetor. Dentro da função eu realizo um loop com uma variável i setada como zero até o valor da capacidade inicial e vou cadastrando os dados. Vejam que eu utilizo mais a frente uma variável j igualmente setada como zero para utilizar nas comparações. O erro no código é que a validação das repetições não está acontecendo. void cadastrarDadosAvioes(Aviao *aviao, int *contaAviao, int *baseInicial){ int opcao=0, i, j, flag=1; char auxNome[MAX], *result; strcpy(auxNome, ""); FILE *arquivo; //acrescenta dodos ao final ou faz leitura/escrita de arquivo arquivo = fopen("avioes.txt", "ab"); if(!arquivo){ perror("Error "); exit(EXIT_FAILURE); }else{ do{ if(*contaAviao==10){ *baseInicial = (*contaAviao)*2; aviao = (Aviao*)realloc(aviao, (*baseInicial)*sizeof(Aviao)); } printf("\n\n%d", *baseInicial); for(i=0;i<*baseInicial;i++){ if(stricmp((aviao+i)->codigoIdentificacao, "")==0){ do{ strcpy((aviao+i)->codigoIdentificacao, leValidaCodigoAviao("DIGITE O CODIGO DO AVIAO:", "\nCODIGO DIGITADO INVALIDO!\n")); for(j=0;j<*baseInicial;j++){ if((stricmp((aviao+i)->codigoIdentificacao, (aviao+j)->codigoIdentificacao))==0&&i!=j){ flag=0; printf("\nCodigo ja existe!\n"); }else{ flag=1; } } }while(!flag); do{ strcpy((aviao+i)->modeloAviao, leValidaTexto("DIGITE O MODELO DO AVIAO:", "\nMODELO NAO PODE SER VAZIO!\n")); for(j=0;j<*baseInicial;j++){ if((stricmp((aviao+i)->modeloAviao, (aviao+j)->modeloAviao))==0&&i!=j){ flag=0; printf("\nEsse modelo já existe!\n"); }else{ flag=1; } } }while(!flag); leValidaCapacidade("INFORME A CAPACIDADE DO AVIAO:", "\nCAPACIDADE INVALIDA!\n", &(aviao+i)->capacidade); do{ strcpy((aviao+i)->nomeCliente, leValidaTexto("DIGITE O NOME DO CLIENTE:", "\nNOME INVALIDO!\n")); for(j=0;j<*baseInicial;j++){ if((stricmp((aviao+i)->nomeCliente, (aviao+j)->nomeCliente))==0&&i!=j){ flag=0; printf("\nEsse nome já existe!\n"); }else{ flag=1; } } }while(!flag); do{ strcpy((aviao+i)->nomePais, leValidaTexto("DIGITE O NOME DO PAIS:", "\nPAIS INVALIDO!\n")); if(verifica((aviao+i)->nomePais)==0){ printf("\nEsse paises não está cadastrado!\n"); flag=0; }else{ flag=1; } }while(!flag); break; } } fwrite(&aviao[*contaAviao], sizeof(Aviao), 1, arquivo); //atualiza contador *contaAviao+=1; printf("(1)- CADASTRAR OUTRO AVIAO\n"); printf("(2)- RETORNAR AO MENU\n\n"); scanf("%d", &opcao); if(opcao == 2){ fclose(arquivo); getch(); return; } }while(opcao==1&&(*contaAviao<*baseInicial)); } }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.