int main(int argc, char *argv[]) { fila *fi; fi = create(); entra(fi, 5); print(fi); entra(fi, 1); print(fi); entra(fi, 6); print(fi); entra(fi, 0); print(fi); entra(fi, 2); print(fi); entra(fi, 3); print(fi); entra(fi, 7); print(fi); entra(fi, 9); print(fi); sai(fi); print(fi); sai(fi); print(fi); sai(fi); print(fi); sai(fi); print(fi); sai(fi); print(fi); sai(fi); print(fi); sai(fi); print(fi); sai(fi); print(fi); destroy(fi); return 0; }
void load_entrada_saida(FUNDO*pf,FILE*fp,DATA data, int val,char*op) { int j=0; float valor=0; char str1[MAX]="", str2[MAX]=""; JOGADOR *paux=(JOGADOR*)malloc(sizeof(JOGADOR)*val); for(j=0;j<val;j++) { fscanf(fp,"%[^,] , %[^\n]\n",str1,str2); //o formato %[^,] faz com que a string seja lida até que apareça a vírgula. O formato %[^\n] faz o mesmo até que apareça o new line (paux+j)->nome=(char*)malloc(strlen(str1)+1); strcpy((paux+j)->nome,str1); (paux+j)->clube=(char*)malloc(strlen(str2)+1); strcpy((paux+j)->clube,str2); } if(strcmp(op,"ENTRAM")==0) { insert_string(paux,val-1); //FUNÇÃO QUE ORDENA O BLOCO DE JOGADOR A SER INSERIDO NA ESTRUTURA pf->plantel_ativo+=val; entra(pf,paux,data,val); //REALIZA A INCLUSÃO DOS NOVOS JOGADOR NA ESTRUTURA DEFINITIVA imprime_txt(paux,"ENTRAM",val,data); //IMPRIME EM TXT O RESUMO DA OPERAÇÃO REALIZADA imprime_bin(paux,"ENTRAM",val,data); } else if(strcmp(op,"SAEM")==0) { valor=pf->mealheiro/pf->plantel_ativo; for(j=0;j<val;j++) { saida(pf,(paux+j)->nome,data,valor); } pf->plantel_ativo-=val; imprime_txt(paux,"SAEM",val,data); imprime_bin(paux,"SAEM",val,data); } }
void load_entrada_saida_bin(FUNDO*pf,FILE*fp,DATA data, int val,char*op) { int j=0,size1=0,size2=0,n=0; float valor=0; JOGADOR *paux=(JOGADOR*)malloc(sizeof(JOGADOR)*val); for(j=0;j<val;j++) { //fscanf(fp,"%[^,] , %[^\n]\n",str1,str2); //o formato %[^,] faz com que a string seja lida até que apareça a vírgula. O formato %[^\n] faz o mesmo até que apareça o new line n=fread(&size1,sizeof(int),1,fp); if(n==1) { (paux+j)->nome=(char*)malloc(size1); } else { printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o tamanho do nome do jogador\n"); return; } n=fread((paux+j)->nome,sizeof(char)*size1,size1,fp); if(n!=size1) { printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o nome do jogador\n"); return; } n=fread(&size2,sizeof(int),1,fp); if(n==1) { (paux+j)->clube=(char*)malloc(size2); } else { printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o tamanho do nome do clube\n"); return; } n=fread((paux+j)->clube,sizeof(char)*size2,size2,fp); if(n!=size1) { printf("load_entrada_saida_bin():ocorreu erro ao tentar copiar o nome do jogador\n"); return; } } if(strcmp(op,"ENTRAM")==0) { insert_string(paux,val-1); //FUNÇÃO QUE ORDENA O BLOCO DE JOGADOR A SER INSERIDO NA ESTRUTURA pf->plantel_ativo+=val; entra(pf,paux,data,val); //REALIZA A INCLUSÃO DOS NOVOS JOGADOR NA ESTRUTURA DEFINITIVA imprime_txt(paux,"ENTRAM",val,data); //IMPRIME EM TXT O RESUMO DA OPERAÇÃO REALIZADA imprime_bin(paux,"ENTRAM",val,data); } else if(strcmp(op,"SAEM")==0) { valor=pf->mealheiro/pf->plantel_ativo; for(j=0;j<val;j++) { saida(pf,(paux+j)->nome,data,valor); } pf->plantel_ativo-=val; imprime_txt(paux,"SAEM",val,data); imprime_bin(paux,"SAEM",val,data); } }