2009-03-30 5 views
1

Est-il possible de quitter une boucle C++ en fonction de l'entrée au clavier sans avoir à entrer quelque chose à chaque itération?C++ boucle de sortie basée sur l'entrée au clavier

Par exemple

while(checkkeyboardinput != 'q') 
    { 
    do work 
    } 

Je pense que cela est très facile, mais Google ne me aide, et je ne me souviens pas comment faire cela. Merci pour l'aide.

EDIT: J'utilise VS2008

+0

Quelle plate-forme utilisez-vous? Winodows, Linux, Mac? – Colin

Répondre

4

Essayez _kbhit(). Autant que je sache, il vérifie s'il y a une entrée au clavier en attente dans le tampon.

http://msdn.microsoft.com/en-us/library/58w7c94c%28VS.80%29.aspx

_kbhit

Vérifie la console pour la saisie du clavier.

int _kbhit (vide);

Valeur de retour

_kbhit retourne une valeur non nulle si une touche a été enfoncée. Dans le cas contraire, il renvoie 0.

Remarques

La fonction _kbhit vérifie la console pour une combinaison de touches récente. Si la fonction renvoie une valeur différente de zéro, une séquence de touches est en attente dans le tampon. Le programme peut ensuite appeler _getch ou _getche pour obtenir la séquence de touches.

3

Si vous utilisez ncurses, vous pouvez, très facilement, avec getch(). Cependant, il n'y a pas de façon standard de faire ce que vous voulez.

1

Vous avez oublié de mentionner quel système d'exploitation vous utilisez. Obtenir une entrée au clavier dépend du système d'exploitation (même en fonction de la bibliothèque - par exemple, comment le faire avec GTK est évidemment spécifique à GTK.)

Eh bien, GTK fonctionne sur plusieurs OS'es, donc ... mais vous avez l'idée. Vous devez spécifier un peu plus sur l'environnement dans lequel vous travaillez pour obtenir une réponse raisonnable.

Questions connexes