Appuie et Sort

Signaler
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour,

Je suis en train de réaliser une application console. Il se tourne automatiquement tous les 10 minutes. Que dois-je faire pour sortir la boucle n'importe où et n'importe quand lorsque j'appuie sur une touche définie. Merci de m'aider.

12 réponses

Messages postés
238
Date d'inscription
lundi 2 mars 2009
Statut
Membre
Dernière intervention
29 septembre 2011

Salut,
cela n'engage que moi mais je ne trouve pas ton post très clair !
tu pourrais être plus précis ? Dans ta boucle effectue bien des instructions (appel de fonction(s), incrémentation ....), plus de détails s'il te plait

Cordialement MoH008 ! 
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

C une boucle do...while... infinie. Et pour faire touner automatique tous les 10 minutes, j'utilise la fonction Sleep(). Je veux que mon prgramme sorte cette boucle n'importe quand dès que j'appuie une touche, "s" par exemple. C clair maintenant?
Messages postés
238
Date d'inscription
lundi 2 mars 2009
Statut
Membre
Dernière intervention
29 septembre 2011

lien

cela répond à ta question?
Cordialement MoH008 ! 
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

Pah, mon problème est pire que ça. Dans ce cas là, la boucle s'arrête quand "test" est atteint. Mais dans ce cas ci, même si "test" n'est pas encore atteint, quand j'appuie sur un touche, le programme sort la boucle.
Messages postés
238
Date d'inscription
lundi 2 mars 2009
Statut
Membre
Dernière intervention
29 septembre 2011

essaie avec
si (touche pressée)
  return;

ou

si (touche pressée)
 break; // mais ce n'est pas propre

The possible meet the impossible to becom the possimpible !!
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut
Pourquoi break n'est pas propre? Pour sortir d'une boucle infinie, break convient très bien.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

J'y ai déjà pensé. Mais avec cette méthode, l'arrêt de la boucle ne dépend pas quand on appuie sur la touche mais où on met le "si" dans la boucle. De plus, quand je le met dans ma boucle, mon prgramme sort jamais la boucle, ça je comprends pas. Merci quand même, une autre façon est mieux.
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

Ma boucle contient plusieurs fonctions, donc, avec ce méthode, où on met le structure de condition est un problème.
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Orientes toi plus vers une programmation événementielle. Regarde quelques tutos pour mieux comprendre.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

Je crois que j'ai bien compris. Avec une boucle infinie qui contient des sous boucles pertant de temps pour parcourir une pile, l'intruction:
si(test)
     break;
ne convient pas si on veut sortir cette boucle tout suite dès une action quelconque.
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Si tu veux vraiment être sure de sortir de la boucle des que tu appuies sur une touche, la programmation événementielle ne peut pas te le garantir.
La seule solution c'est d'utiliser un thread qui ne fera que scruter toutes les 10 ms si une touche est appuyé ou pas. Si oui, ce thread devra avertir le second thread afin qu'il arrête le traitement.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Pas sûr d'avoir compris, mais voilà un bout de code dont tu peux peut être t'inspiré, avec thread récupération de touche et arrêt de boucle infinie.