[C / Unix] Recuperer un evenement clavier en mode console

Recuperer un evenement clavier en mode console [C / Unix] - C - Programmation

Marsh Posté le 08-04-2006 à 14:24:41    

Salut a tous,
 
Je cherche un peu d'aide, je voudrais recuperer un evenement clavier sur un programme dans un terminal.
Je m'explique, dans mon programme je suis en mode interractif, et lorsque je fais une faute de frappe je souhaitterais supprimer le caractere mauvais. Le probleme c'est que qd j'appuie sur la touche BackSpace pour effacer ca m'affiche d'autre caractere ...  
 
Bref d'ou ma question, comment puis je recuperer un evenement clavier pour gerer toutes les touches ??
 
 
Merci par avance.
 


---------------
Creez vos cartes de visite sur internet : http://www.apirepro.com  - Plateforme de developpement Web : http://www.net-sam.com
Reply

Marsh Posté le 08-04-2006 à 14:24:41   

Reply

Marsh Posté le 10-04-2006 à 01:31:58    

essaye la librairie ncurses

Reply

Marsh Posté le 10-04-2006 à 10:30:39    

oue je vais essayer merci

Reply

Marsh Posté le 10-04-2006 à 13:34:08    

Il faut que tu initialise une variable set par exmple de type fd_set qui representera un ensemble qui contiendraun ou plusieurs descripteurs de fichiers a surveiller.
Tu y inclus stdin qui est vl'entree standart. Les  fonctions qui te permettront d'y aprvenir sont :
 
FD_ZERO(&set) /*initialise l'ensemble set a zero*/
FD_SET(STDIN_FILENO,&set)/*inclus le descripteur de stdin dans l'ensemble set*/
ensuite tu utilise la fonction select() pour surveiller ton ensemble de descripteurs set.
select(STDIN_FILENO+1,&set,NULL,NULL,NULL) /*tu surveilles ton ensemble de descripteur*/
puis avec :*
FD_ISSET(STDIN_FILENO,éset) /*tu verifies si il y a un evenement qui arrive sur un descripteur particulier et tu traite en lecture*/

Reply

Marsh Posté le 10-04-2006 à 16:29:44    

Merci Beaucoup yartempion, je vais plutot chercher a utiliser ta methode.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed