Estou fazendo um programa ( trabalho de faculdade ) , para cadastro de jogos ( era cadastro de qualquer coisa, escolhi jogos ) , é preciso que o programa tenha a opção do usuario alterar um registro existente, os dados são gravados em arquivo... estou postando aqui somente a função que criei para alterar um registro... quando escolho essa opção, no programa, tudo é executado normalmente, mas os dados não são alterados... preciso de uma ajuda aí ^^ desda ja obrigado
void alterar(FILE *pont, int codigo)
{
struct jogo cad;
int sucesso=0;
do {
if (fread(&cad,sizeof(struct jogo),1,pont) == 0)
break;
if (cad.codigo == codigo)
{ system("cls");
printf("<<<<<Registro Antigo>>>>>\n\n");
printf("Codigo............: %d\n",cad.codigo);
printf("Jogo..............: %s\n",cad.nome_jogo);
printf("Plataforma........: %s\n",cad.plataforma);
printf("Desenvolvedor'a'..: %s\n",cad.desenvolvedor_a);
printf("Ano...............: %d\n\n",cad.ano);
printf("<<<<<Digite o Registro novo>>>>\n\n");
printf("Código..........: ");
scanf("%d", &cad.codigo);
fflush(stdin);
printf("Nome do Jogo....: ");
gets(cad.nome_jogo);
printf("Plataforma......: ");
gets(cad.plataforma);
printf("Desenvolvedor'a': ");
gets(cad.desenvolvedor_a);
fflush(stdin);
printf("Ano.............: ");
scanf("%d", &cad.ano);
fflush(stdin);
cad.deletado=0;
fwrite(&cad,sizeof(struct jogo),1,pont);
sucesso=1;
break;
}
} while(1);
if (!sucesso)
printf("Jogo não encontrado no arquivo\n");
system("pause");
}