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 :

pause d'un programme


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut pause d'un programme
    bonsoir
    j'ai créé un programme qui utilise une boucle "while" avec une condition qui est toujours vraie .
    je veux lorsque je tape une touche le programme s'arrête un moment (Pause)
    j'ai essayé, mais j'ai pas arrivé a le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    while(!kbhit())
     {
     
      }
    merci d'avance

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    j'ai essayé, mais j'ai pas arrivé a le faire
    Mais encore ?
    Si on regarde la site msdn, l'exemple donné est proche de ce que tu as écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <conio.h>
    #include <stdio.h>
     
    int main( void )
    {
       /* Display message until key is pressed. */
       while( !_kbhit() )
          _cputs( "Hit me!! " );
     
       /* Use _getch to throw key away. */
       printf( "\nKey struck was '%c'\n", _getch() );
    }
    EDIT :

    Si c'est juste pour faire une pause dans le programme, on peut faire plus simple (et plus portable) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf("Appuyez sur entrée\n");
    fgetc(stdin);
    On peut placer ce code après avoir vidé le buffer d'entrée si nécessaire.
    Dernière modification par Invité(e) ; 21/05/2009 à 09h21.

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par mabu Voir le message
    On peut placer ce code après avoir vidé le buffer d'entrée si nécessaire.
    Non. Il est impossible de vider stdin a priori, sans savoir comment il a été utilisé avant.

    C'est après chaque fonction de lecture de faire immédiatement le nettoyage qui s'impose.

    Par exemple, si on doit faire une pause, on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void pause (void)
    {
       int c;
       printf("Appuyez sur entrée\n");
       while ((c = getchar() != '\n') && c != EOF)
       {
       }
    }

  4. #4
    Membre confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 99
    Par défaut
    Tout dépend quelle genre de pause tu veux faire, ... si c'est une pause qui attend que l'utilisateur tapes une touche ou si c'est une pause qui continue l'exécution après x secondes, par exemple.

    Sinon, par rapport à ton exemple et ce qui fonctionne chez moi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (!kbhit())
    {
        //On attend une touche...
    }
    touche = getch();

  5. #5
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 143
    Par défaut
    Par contre si tu veux que "LORSQUE TU AAPPUYS SUR UNE TOUCHE"

    c'est à dire n'importe quel moment DANS le programme.

    Il faut te tourner vers d'autres mechanisme comme par exemple les threads.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    Citation Envoyé par rilou Voir le message
    Par contre si tu veux que "LORSQUE TU AAPPUYS SUR UNE TOUCHE"

    c'est à dire n'importe quel moment DANS le programme.
    oui, c'est ce que je veux
    je vais chercher sur les "thread"
    merci à vous tous

  7. #7
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Citation Envoyé par mabu
    On peut placer ce code après avoir vidé le buffer d'entrée si nécessaire.
    Non. Il est impossible de vider stdin a priori, sans savoir comment il a été utilisé avant.
    C'est ce que signifait le "si nécessaire" :-)

Discussions similaires

  1. Mettre une pause dans un programme
    Par PNL dans le forum Général Java
    Réponses: 12
    Dernier message: 28/01/2016, 00h54
  2. Pause dans un programme & vérification
    Par b Oo dans le forum C++
    Réponses: 5
    Dernier message: 21/01/2007, 23h08
  3. [Débutant] Pause dans un programme en mode console ?
    Par pugnator dans le forum Langage
    Réponses: 2
    Dernier message: 15/12/2006, 12h08
  4. Pause dans un programme Pro*C
    Par Veve44 dans le forum C
    Réponses: 5
    Dernier message: 11/10/2005, 17h49
  5. Faire une pause dans le programme
    Par shinobi dans le forum Access
    Réponses: 6
    Dernier message: 13/06/2005, 16h37

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