Bom dia/tarde/noite a todos. Estou fazendo uns testes de inserção, leitura, alteração e remoção de linhas em um arquivo txt. Aprendi a alterar um arquivo copiando o conteúdo dele para um outro provisório, alterando apenas o que preciso, e depois voltando para o arquivo original(para manter o nome do arquivo). Porém meu professor quer que eu faça com a função fseek e não sei como fazer(ele ainda não ensinou isso e não consegui encontrar em outros tópicos ou vídeos do Youtube). Estava fazendo desta forma:
char NomSalv[20], NomNov[20];
printf("\n Qual o Nome Salvo?\n");
setbuf(stdin,NULL);
gets(NomSalv);
printf("\nQual o Novo Nome?\n");
setbuf(stdin,NULL);
gets(NomNov);
FILE *Arquivo, *ArqProv;
Arquivo = fopen("Texto.txt","r");
ArqProv = fopen("TextoProv.txt","w");
char Nome[20], Telefone[20];
int ver = 5;
while(!feof(Arquivo))
{
fscanf(Arquivo,"%s %s ",&Nome,&Telefone);
ver = strcmp(Nome,NomSalv);
if(ver == 0)
{
fprintf(ArqProv,"%s %s\n", NomNov,Telefone);
}
else
{
fprintf(ArqProv,"%s %s\n",Nome,Telefone);
}
}
fclose(Arquivo);
fclose(ArqProv);
ArqProv = fopen("TextoProv.txt","r");
Arquivo = fopen("Texto.txt","w");
while(!feof(ArqProv))
{
fscanf(ArqProv,"%s %s ",&Nome,&Telefone);
fprintf(Arquivo,"%s %s\n",Nome,Telefone);
}
close(ArqProv);
close(Arquivo);
remove("TextoProv.txt");