#1 Le 13/04/2006, à 13:34
- Petit Willy
detecter un evenement clavier ( langage C )
salut_tout_le_monde();
j'ai fais un petit programe tout con en C qui calcule et stocke dans en un fichier un atracteur le Lorenz. donc des dixaines de milliers de coordonnées X Y Z ... c'est long....
Je voudrais pouvoir interompre ma boucle de calcul par l'appuis de la touche Echap, seulement je ne suis qu'un modeste debutant et je ne vois pas du tout comment faire.
si quelqu'un a une astuce ou un liens vers un tutorial ou bien une source a démonter... je suis preuneur.
Merci d'avance
Oups !!! j'oublié mon prog tourne en Console
Hors ligne
#2 Le 13/04/2006, à 13:38
- m+rh-e
Re : detecter un evenement clavier ( langage C )
un ctrl + c devrait faire l'affaire
Hors ligne
#3 Le 13/04/2006, à 16:52
- Petit Willy
Re : detecter un evenement clavier ( langage C )
ben non, car je voudrais arreter ma boucle et revenir au menu, pas arreter le programe
merci tout de même
Hors ligne
#4 Le 13/04/2006, à 17:58
- aznur
Re : detecter un evenement clavier ( langage C )
il te fodra utiliser un thread
qui a comme fonction de lire tout se qui se tape o clavier
se que l'on apelle un keyboard event
tu devrai trouver sa en cherchant avec google
une fois ke tu recuper l'event
compare le si c la valeur de la touche echap
si c pas sa ba tu fai rien ...
si c sa ba tu di a ton ton prog principal d'areter
et apre tu lui di de revenir o menu ...
tu aura besoin de mutex pour pouvoir lire la constante et que surtou pendan ke tu la lit tu necrive pa dedans un bool pour letat de la touche echap par exemple
Hors ligne
#5 Le 16/04/2006, à 01:12
- Petit Willy
Re : detecter un evenement clavier ( langage C )
je doit pas etre trop malin car avant de poster j'ai fais une recherche et je trouve de tout et de rien surtout rien de bien explicite histoire de me faire une idée de la procedure
si non pour l'algo j'ai a peu pres pijé c'est au niveau du code que je coince...
je debute et du coup je rame, mai je ne demande qu'a aprendre...
j'ai vu qu'on pouvez faire des trucs du genre avec ncurses, mais je voudrais ne pas trop me lier a une bibliotheque... et surtout je voudrais comprendre comment faire ce genre de truc car meme si c'est idiot de réinventer la roue a chaque fois, ca me permetrais de mieux apréander des concepts plus coton...
en tout cas merci pour vos réponces
Hors ligne
#6 Le 17/04/2006, à 17:59
- Geoffrey
Re : detecter un evenement clavier ( langage C )
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE: /* Appui sur la touche Echap, on arrête le programme */
continuer = 0;
break;
}
moi j'ai trouvé ca, mais ca utilise la bibliotheque SDL
ca se trouve ici : http://www.siteduzero.com/tuto-3-5790-1-la-gestion-des-evenements-clavier-et-souris.html#ss_part_1
Hors ligne
#7 Le 17/04/2006, à 18:53
- Petit Willy
Re : detecter un evenement clavier ( langage C )
Merci
c'est cool de penser a moi
Je suis quand meme curieux de connaitre la methode thread
Hors ligne
#8 Le 20/04/2006, à 13:46
- aznur
Re : detecter un evenement clavier ( langage C )
ba dison que moi comme toi je debute enfin sous linux
j'ai bcp travailler sous enfin vous savez quoi
http://pficheux.free.fr/articles/lmf/threads
c pour les thread par contre vue que je debute et que j'ai pa encore utiliser les key event sous linux
je peu pa trop t'aider sur sa mais les key event
je me suis renseigner sur la SDL sa a l'aire detre mimi
et justement c parce que tu ne veut pas reinventer la roue a chaque fois que je croi que tu devrai utiliser la SDL
http://www.gnurou.org/Writing/SDLTutoriel2
t mieu a utiliser une bibli que se que je te proposer
vue que la SDL le fai d'apres se que j'ai compris tou seul
maintenant j'ai pa tester mais sa a l'air mignon
v pouvoir porter mon logiciel de prise de control a distance ....
Dernière modification par aznur (Le 20/04/2006, à 17:37)
Hors ligne
#9 Le 20/04/2006, à 13:58
- Petit Willy
Re : detecter un evenement clavier ( langage C )
ba dison que moi comme toi je debute enfin sous linux
j'ai bcp travailler sous enfin vous savez quoi
http://pficheux.free.fr/articles/lmf/threads
c pour les thread par contre vue qye je debute et que j'ai pa encore utiliser les key event sous linux
je peu pa trop t'aider sur sa mais les key event
je me suis renseigner sur la SDL sa a l'aire detre mimi
et justement c parce que tu ne veut pas reinventer la roue a chaque fois que je croi que tu devrai utiliser la SDL
http://www.gnurou.org/Writing/SDLTutoriel2
t mieu a utiliser une bibli que se que je te proposer
vue que la SDL le fai d'apres se que j'ai compris tou seul
maintenant j'ai pa tester mais sa a l'air mignonv pouvoir porter mon logiciel de prise de control a distance ....
kool ,
ton premier lien m'ouvre de nouveaux horizons... merci beaucoup je vais essayer de m'y pencher des ce soir
Hors ligne
#10 Le 20/04/2006, à 17:38
- aznur
Re : detecter un evenement clavier ( langage C )
enfin quelqu'un qui me dit merci sa fait chaud au coeur
j'en verseré presque une larmette ...
Hors ligne
#11 Le 20/04/2006, à 17:55
- Petit Willy
Re : detecter un evenement clavier ( langage C )
Hors ligne
#12 Le 20/04/2006, à 23:38
- Sacre
Re : detecter un evenement clavier ( langage C )
La solution serait effectivement de faire deux threads.
Avec le lien ci-dessus, c'est expliqué comment créer des threads.
Un thread se charge de faire tes calculs.
L'autre de lire le clavier et d'interrompre le premier si l'utilisateur a tapé sur une touche précise.
Pour des trucs et astuces concernant la lecture de ce qui arrive dans le terminal:
http://c.developpez.com/faq/c/?page=clavier_ecran#SCREEN_scanf_fgets
Avec ça, tu devrais réussir à t'en sortir.
Hors ligne
#13 Le 21/04/2006, à 03:35
- Petit Willy
Re : detecter un evenement clavier ( langage C )
Merci je crois bien que j'ai tout ce qu'il me faut
c'est vraiment cool...
il ne reste plu qu'a j' vous tiens au jus pour la suite et encore merci
Hors ligne