Estou a fazer um programa que me permite inserir e apagar jogadores com estruturas e arquivos em c. e estou com um pequeno problema em relação ao modo apagar já que ele completa o resto do ficheiro com 0 e não é isso que se pretende.
Gostaria que me dessem uma forma de conseguir apagar esses zeros do programa e que mantivesse os jogadores que já lá estão. Deixo o meu código:
void ApJogadores(){
iJogadores=fopen("jogadores.txt","r");
if(iJogadores==NULL){
printf("OCORREU ERRO NA ABERTURA DO FICHEIRO");
exit(1);
}
int pos;
printf("Qual a posicao que pretende excluir:");
scanf("%i", &pos);
pos--;
int i;
for(i=0;i<100;i++){
fscanf(iJogadores,"Informacoes sobre o jogador: %i %s %i/%i/%i %s %s %s \n",&ij[i].num, ij[i].nome,&ij[i].data[0],&ij[i].data[1],&ij[i].data[2], ij[i].equipa, ij[i].nac, ij[i].posicao);
}
if(pos>=0 && pos<100){
for(i=pos;i<99;i++){
ij[i]=ij[i+1];
}
}
fclose(iJogadores);
iJogadores=fopen("jogadores.txt","w");
if(iJogadores==NULL){
printf("OCORREU ERRO NA ABERTURA DO FICHEIRO");
exit(1);
}
for(i=0;i<100;i++){
fprintf(iJogadores,"Informacoes sobre o jogador: %i %s %i/%i/%i %s %s %s \n",ij[i].num,ij[i].nome,ij[i].data[0],ij[i].data[1],ij[i].data[2],ij[i].equipa,ij[i].nac,ij[i].posicao);
}
}