Bonjour ,

je souhaite réaliser des temporisation entre deux actions mais ça ne se passe pas comme prévu .

le but . Afficher une chaîne de caractère , temporiser , puis revenir un caractère en arrière , temporiser , puis ajouter un caractère ,puis temporiser avant de quitter

quand je lance le programme il s'écoule un certain temps puis affiche directement la chaîne modifiée .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
           #include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <string.h>
#include <time.h>
 
 
int main (void) 
{
 
 
   printf("abcdefgh");
   sleep(2);
   printf("\b");
   sleep(2);
   printf("a");
   sleep(2) ;  
   printf(" \n");
 
 
 
  return 0;
 
 
}

si je remplace sleep par une fonction perso j'ai le même résultat

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
             #include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <string.h>
#include <time.h>
 
 
 
void temporise(unsigned long temps)
{
  time_t heure_debut;
  time_t heure_fin;
  time_t heure_actuelle;
 
   heure_debut=time(NULL);
   heure_fin=heure_debut+temps;
   while( time(NULL) <= heure_fin  ){}
 
}
 
 
int main (void) 
{
 
 
   printf("abcdefgh");
   temporise(2);
   printf("\b");
   temporise(2);
   printf("a");
   temporise(2);
   printf("\n");
 
 
 
  return 0;
 
 
}

question : à quoi est ce dû ? y a t il un effet de bord ? Comment inserer des temporisations qui soient respectés

Merci