[langage C] evenement clavier
Résolu
kaham
Messages postés
180
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un programme qui demande a l'utilisateur d'entrer une action a la fois, indéfiniment de façon a déplacer un point dans une matrice autant de fois qu'il le souhaite jusqu'à ce qu'il veille quitter le programme.
Mais a chaque fois taper z,q,s,d, suivit de ENTER est assez fastidieux surtout quand la matrice est grande.
Je voudrais que l'utilisateur n'aille qu'a appuyer sur la touche z,q,s ou d (donc sans valider par ENTER) pour déplacer le point dans la matrice.
utilisant linux je suis un peut limiter sur certaine lib et donc certaine fonction... J'ai tout de même trouver des fonctions comme getc, fgetc, getchar mais dans tous les cas il faut valider par ENTER.
J'ai un programme qui demande a l'utilisateur d'entrer une action a la fois, indéfiniment de façon a déplacer un point dans une matrice autant de fois qu'il le souhaite jusqu'à ce qu'il veille quitter le programme.
Mais a chaque fois taper z,q,s,d, suivit de ENTER est assez fastidieux surtout quand la matrice est grande.
Je voudrais que l'utilisateur n'aille qu'a appuyer sur la touche z,q,s ou d (donc sans valider par ENTER) pour déplacer le point dans la matrice.
utilisant linux je suis un peut limiter sur certaine lib et donc certaine fonction... J'ai tout de même trouver des fonctions comme getc, fgetc, getchar mais dans tous les cas il faut valider par ENTER.
A voir également:
- [langage C] evenement clavier
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Comment taper / sur clavier - Guide
- Clavier de l'ordinateur - Guide
- Clavier iphone chiffre et lettre - Guide
- Changer clavier qwerty en azerty - Guide
2 réponses
Salut,
Il faut passer ta console en mode raw. Pour cela, la fonction cfmakeraw s'occupe de ça ;)
Si tu veux une implémentation : https://c.developpez.com/faq/?page=Gestion-du-clavier-et-de-l-ecran-en-mode-console#SCREEN_mode_raw_def
Il faut passer ta console en mode raw. Pour cela, la fonction cfmakeraw s'occupe de ça ;)
Si tu veux une implémentation : https://c.developpez.com/faq/?page=Gestion-du-clavier-et-de-l-ecran-en-mode-console#SCREEN_mode_raw_def
Si on programme sur linux, on peut ausi utiliser : . Mais bon, pas trop conseillé.
Si on veut rester le plus portable possible, sur un système POSIX, il vaudra mieux utiliser cfmakeraw et sur windows, utiliser ses bibliothèques.
Voici la représentation de l'affichage de ma matrice avec 2 boucles for() imbriquées lors de l'exécution :
Mais dés l'appuie d'une touche (peut importe la quelle) voici comment est affichée ma matrice :
et ainsi de suite... par contre le point ce déplace correctement avec z,q,s,d.
Mais pourquoi l'affichage ce fait-il comme cela ?
Merci a toi.