[C]Afficher un pourcentage au même endroit - Sans écrire sur une nouvelle ligne

Bonjour,

Tout est dans le titre (je ne sais pas si c’est bien compréhensible), mais voilà ce que j’ai testé pour y faire marcher :

int i = 0, j = 0;
fpos_t pos;
  
fprintf(stdout, "Done : ");
fgetpos(stdout, &pos);

for (i = 0; i <= 100; i++)
{
    fsetpos(stdout, &pos);
    fprintf(stdout, "%d%%", i);

    for (j = 0; j <= 100000000; j++)
    {
         continue;
    }
}

Mais fgetpos ne marche apparemment pas (revoie toujours -1) pour stdout (surement fsetpos non plus).
Si quelqu’un sait comment faire je l’en remercie.
:kimouss:


int i = 0, j = 0;
for (i = 0; i <= 100; i++)
{
   fprintf(stdout, "Done : %d%%\r", i);

   for (j = 0; j <= 100000000; j++)
   {
        continue;
   }  
}

Merci :D.
:kimouss:

Sinon pour ce que tu veux, faut utiliser ncurses.h je crois bien.

(en gros: que ça affiche : Progression: 100% avec le 100% en variable)

 
for (j = 0; j <= 100000000; j++)
{
   continue;
}

Je préconniserais un petit Sleep moi. Enfin bon, c’est juste pour l’exemple :pt1cable:

Sachant que Sleep ne supporte pas en dessous de 1 milliseconde, un Sleep d’une telle boucle donnerais un Sleep de 100000 millisecond soit 10 secondes … donc il vaut mieux surcharger le cpu dans un tel contexte :stuck_out_tongue: