typedef struct tJogador {
char nome[50];
int pontos;
} Jogador;
Jogador jog[10]; - fopen, abriu arquivo "jogadores.txt" para leitura apenas. - lê uma linha do arquivo, guarda nome e pontuação em jog[0].nome e jog[0].pontos - lê outra linha do arquivo, guarda nome e pontuação em jog[1].nome e jog[1].pontos - lê mais outra... guarda em jog[2]... - etc... - fecha arquivo O arquivo tá fechado, mas todos os dados que você precisa estão guardados no vetor "jog[]". Então você chama as funções do seu jogo, faz o que tiver que fazer, quando o jogador vencer você procura o nome dele em jog[]. Se estiver lá, você só muda a pontuação... se ele não estiver lá, é só pegar uma posição vazia do vetor e incluir ele. Terminou de executar o jogo, então: - fopen, abre o arquivo "jogadores.txt" pra escrita. - pega os dados de jog[0] e escreve no arquivo - pega os dados de jog[1] e escreve no arquivo - pega os dados de jog[2] e escreve no arquivo - etc... - fecha arquivo Como você abriu o arquivo pra escrita ("w"), o conteúdo que tava antes nele vai ser perdido, e você terá um arquivo novinho em folha com os dados dos jogadores atualizados.