IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Interrompre Sleep !


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5
    Par défaut Interrompre Sleep !
    Bonjour,
    J'ai un probleme dont vous avez peut etre la reponse

    Le code qui suit doit permettre d'executer une/plusieurs methode(s) tant qu'une touche a pas été appuyée (kbhit ()) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <stdio.h>
    #include <conio.h>
    #include <dos.h>
    int main(void)
    {
      printf("Lancement:");
        while (!kbhit())
        {
             printf("\r\n...\r\n");
        }
        return 0;
    }
    Seulement il faut que je rajoute une "pause" entre chaque exécution de la boucle. voici ce que cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <stdio.h>
    #include <conio.h>
    #include <dos.h>
    int main(void)
    {
      printf("Lancement:");
        while (!kbhit())
        {
             sleep(10);
             printf("\r\n...\r\n");
        }
        return 0;
    }

    Le programme fonctionne ! Une attente de 10 secondes est bien faite entre chaque lancement de la boucle MAIS impossible de la quitter en appuyant sur une touche car sleep() est une fonction bloquante !

    En gros il faut que j'appuie sur une touche juste apres/avant l'attente (il faut avoir des reflexes)

    Travaillant sur Borland C++ 5.02 je ne dispose pas de timer car mon programme sera envoyé sur un systeme minimal (DK-41).
    Ce dernier dispose bien d'une fonction d'attente similaire au sleep mais tout aussi bloquante ...


    Comment faire ..

  2. #2
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 950
    Par défaut
    tu n'a aucun moyen de verifier l'heure? pas d'orloge interne?

    car sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while (! kbhit() &&  dateSys % 10 == 0 )

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Tu peux utiliser la fonction select() si tu travailles sous un système POSIX ou timeout() si tu peux installer curses (a priori aussi disponible sous win32)

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    C'est du bricolage tout ça, mais tu peux faire 10 sleep de 1 sec au lieu d'un seul de 10... (tu vois l'idée).

Discussions similaires

  1. [Thread] besoin sleep(delay)... car java mobilise CPU
    Par thierry198 dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 27/09/2004, 17h46
  2. [Thread]sleep()
    Par jokoss dans le forum Concurrence et multi-thread
    Réponses: 15
    Dernier message: 03/07/2004, 14h33
  3. [langage] fonction sleep + probleme fenetre dos
    Par yokito dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2003, 19h46
  4. [Turbo Pascal] Lire une touche au clavier sans interrompre le programme
    Par Allelouia dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 29/03/2003, 22h31
  5. [VB6] Interrompre toutes procédures
    Par lutin_vert dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/09/2002, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo