Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 13/04/2006, à 14:34

Petit Willy

detecter un evenement clavier ( langage C )

salut_tout_le_monde(); big_smile

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.... wink
Je voudrais pouvoir interompre ma boucle de calcul par l'appuis de la touche Echap, seulement je ne suis qu'un modeste debutant wink 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. big_smile

Merci d'avance big_smile

Oups !!! j'oublié mon prog tourne en Console tongue

Hors ligne

#2 Le 13/04/2006, à 14: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, à 17: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 wink
merci tout de même big_smile

Hors ligne

#4 Le 13/04/2006, à 18: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, à 02:12

Petit Willy

Re : detecter un evenement clavier ( langage C )

je doit pas etre trop malin sad car avant de poster j'ai fais une recherche et je trouve de tout et de rien sad surtout rien de bien explicite histoire de me faire une idée de la procedure neutral

si non pour l'algo j'ai a peu pres pijé wink c'est au niveau du code que je coince... hmm
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 big_smile

Hors ligne

#6 Le 17/04/2006, à 18: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, à 19:53

Petit Willy

Re : detecter un evenement clavier ( langage C )

Merci big_smile
c'est cool de penser a moi wink

Je suis quand meme curieux de connaitre la methode thread hmm

Hors ligne

#8 Le 20/04/2006, à 14: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, à 18:37)

Hors ligne

#9 Le 20/04/2006, à 14:58

Petit Willy

Re : detecter un evenement clavier ( langage C )

aznur a écrit :

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 mignon

v pouvoir porter mon logiciel de prise de control a distance ....

kool big_smile ,
ton premier lien m'ouvre de nouveaux horizons... merci beaucoup je vais essayer de m'y pencher des ce soir wink

Hors ligne

#10 Le 20/04/2006, à 18: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, à 18:55

Petit Willy

Re : detecter un evenement clavier ( langage C )

big_smile

Hors ligne

#12 Le 21/04/2006, à 00: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, à 04:35

Petit Willy

Re : detecter un evenement clavier ( langage C )

Merci je crois bien que j'ai tout ce qu'il me faut big_smile

c'est vraiment cool...
il ne reste plu qu'a j' vous tiens au jus pour la suite et encore merci wink

Hors ligne

Haut de page ↑