I appreciate the answers but it didn’t work with me, I use linux, I tried to adapt, but still the result didn’t come out as intended.
I got it fixed, I adapted it from this code and the @carlosfigueira code, analyzing the link code you can see that there is a problem in it as i increases.
So I had to understand the workings of a printf, the \r and only in this way could I formulate a solution.
The solution is this:
  #include <stdio.h>
  #include <time.h>
  void limpa_linha(void);
  int main (int argc, char **argv){    
     int i, j;
     system ("clear");//limpa tela
     printf ("\n\nCarregando: \n\n");          
     for (i = 0; i <= 100; i++){             
        printf ("%d%%  ", i);      
        fflush (stdout);//garante a escrita de dados imediatamente na tela                  
        //repare mod 10, eu limito a qtd de pontos q serao gerados
        for (j = 0; j < i%10; j++){
           printf(".");
        }  
        fflush (stdout);//garante a escrita de dados imediatamente na tela
        usleep(500000);//função espera por tempo, parametro em microsegundos.
        limpa_linha();                    
     }                 
     printf ("\n\n Fim\n\n");            
     return 0;
  }
  void limpa_linha(){
     int i;//indice do caracter na linha
     int max_caracter=50;//indica o maximo de caracter que a linha pode chegar a ter, para linhas com mt texto, coloque um nmr bem maior
     printf("\r");//retorna para o inicio da linha que pretende reutilizar, isso não limpa a linha, apenas posiciona cursor ao inicio da linha
     //Agora precisamos limpar a linha,
     //substitui todos os caracteres existentes por espaço em branco
     for(i=0;i<max_caracter;i++){
        printf(" ");//vai preenchendo a linha com espaços em branco
     }
     printf("\r");//volta ao inicio da linha , dessa vez ela está em branco.
  }
							
							
						 
Vlw your implementation helped me base myself. Thank you
– Skywalker