Timer

Résolu
tt -  
 lami20j -
Bonjour,
je voudrais savoir comment faire pour programmer un timer décroissant en C. g déja essayé avec ca mé sa n'affiche rien!! Comme si le prog s'été planté!! Voici le prog:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(){
int sec=; /*on initialise sec pour les secondes à patienter*/
printf("Entrez le nombre de secondes à patienter :");
scanf("%d", &sec);

while(sec>0)
{
printf(" Secondes restantes : %03i", sec);
sec--;
sleep (1000);
}
return 0;
}

Merci
Configuration: Linux
Firefox 3.0.12

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    sleep attend des secondes, donc sleep(1)
    et un \n dans le printf, sinon il bufferise

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    int main(){
    int sec; /*on initialise sec pour les secondes à patienter*/
    printf("Entrez le nombre de secondes à patienter :");
    scanf("%d", &sec);
    
    while(sec>0)
    {
    printf(" Secondes restantes : %03i\n", sec);
    sec--;
    sleep (1);
    }
    return 0;
    } 
    
    0
    1. tt
       
      Cool!! ca marche!!
      Merci!!
      0
    2. tt
       
      Tjour pour améliorer, serait-il possible de le faire san kil affich une nouvell lign a chaque fois, c'est a dire que le 1 devien 2, le 2 devien 3 ainsi de suite sans afficher une nouvelle ligne a chaque fois??
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    comme ça:
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    int main(){
    int sec; /*on initialise sec pour les secondes à patienter*/
    printf("Entrez le nombre de secondes à patienter :");
    scanf("%d", &sec);
    
    while(sec>0)
    {
    printf(" Secondes restantes : %03i\r", sec);
    fflush(stdout);
    sec--;
    sleep (1);
    }
    printf("\n");
    return 0;
    }  
    
    0
    1. tt
       
      Merci!! CA marche a merveille!! A bientot
      0
  3. lami20j
     
    Salut,

    Le prototype de la fonction sleep se trouve dans unistd.h

    lami20j@debian-acer:~/c$ cat sleep.c 
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    int main()
    {
      int sec; /*on initialise sec pour les secondes à patienter*/
      printf("Entrez le nombre de secondes à patienter :");
      scanf("%d", &sec);
    
      while(sec>0)
      {
        printf(" Secondes restantes : %03i\n", sec);
        sec--;
        sleep (1);
      }
      return EXIT_SUCCESS;
    }
    
    lami20j@debian-acer:~/c$ gcc -Wall sleep.c 
    sleep.c: In function ‘main’:
    sleep.c:15: warning: implicit declaration of function ‘sleep’
    lami20j@debian-acer:~/c$ sed -i 's/time/unistd/' sleep.c 
    lami20j@debian-acer:~/c$ gcc -Wall sleep.c 
    lami20j@debian-acer:~/c$
    0