Librairie C++ en C (conio.h)

Librairie C++ en C (conio.h) - C - Programmation

Marsh Posté le 16-12-2004 à 19:33:33    

Bonjour,
 
j'aimerais pouvoir utiliser  conio.h dans un programme en C
afin de capturer l'appuie sur une touche sans attendre de retour chariot...
 
mais bien sur il ne trouve pas conio.h ;)
 
Si vous avez une idée... ou alors uen autre lib dispo en c qui me permette de faire la même chose? :)
 
 
merci d'avance!
++
folk

Reply

Marsh Posté le 16-12-2004 à 19:33:33   

Reply

Marsh Posté le 16-12-2004 à 20:38:59    

conio.h n'est pas propre à C++ mais à MS-DOS, sachant qu'on le retrouve encore sur certains compilos Windows (BCB et Visual je crois), pour la compatibilité ascendante.
 
Sous quel environnement es-tu ? (OS, compilo)

Reply

Marsh Posté le 16-12-2004 à 20:48:16    

Sous certains compilos, y'avait une combine genre :
 

Code :
  1. char c;
  2. while(!kbhit()) {
  3.   c = getch();
  4.   ...
  5. }


 
Et dans ce cas précis, le getch lit ce qu'il y a dans le buffer clavier sans attendre. Donc ça fait une boucle qui attend une pression d'une touche, et en cas de pression la stock dans c...
 

Reply

Marsh Posté le 16-12-2004 à 21:26:01    

mais le getch est propre au conio.h non? car c'est exactement ce que je veux! (boucle en attente de pression de touche)
 
@Lam's je fais mes test sous linux (soit mdk a l'ecole soit debian chez moi)

Reply

Marsh Posté le 16-12-2004 à 21:34:47    

folkN2 a écrit :

mais le getch est propre au conio.h non? car c'est exactement ce que je veux! (boucle en attente de pression de touche)
 
@Lam's je fais mes test sous linux (soit mdk a l'ecole soit debian chez moi)


 
Gestion clavier sous Linux =>
 
- curses
- SDL
 
Au choix. Le premier est limité aux consoles et doit s'approcher de conio.h ( mais en beaucoup plus complet ). Le deuxième est plus orienté jeux.

Reply

Marsh Posté le 16-12-2004 à 21:46:03    

sachant que tout ce que je fais est en mode texte bien entendu :)
tu aurais un petit lien avec des ressources sur curses et/ou SDL ?

Reply

Marsh Posté le 16-12-2004 à 22:28:31    

ok je crois avoir trouvé :) je test ca et je vous tiens au courant ;)
 
PS : si vous avez des liens avec des aides (enfin descritpions ) completes sur les lib du C ca m'interesse grandement! :)
 
EDIT:
j'ai fais un petit truc pour scanner l'appuie de la touche et effecture une action en fonction... (dans l'exemple simulier l'insertion de piece de monnaie)
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <curses.h>
  4. int main(void)
  5. {
  6.         int prix,touche,intro;
  7.         prix=4;
  8.         intro=0;
  9.         printf("_____________________________\n" );
  10.         printf("[  2e   ] [  1e   ] [ 50cts ]\n" ); //touches 4 5 6 du pad
  11.         printf("[ 20cts ] [ 10cts ] [ 5cts  ]\n" ); //touches 1 2 3 du pad
  12.         printf("_____________________________\n" );
  13.         do
  14.         {
  15.                 touche=getch();
  16.                 switch(touche)
  17.                 {
  18.                         case 4: { intro=intro+2;printf("piece de 2e ok\n" );break; }
  19.                         case 5: { intro=intro+1;printf("piece de 1e ok\n" );break; }
  20.                 }
  21.         } while (intro > prix);
  22.         return 0;
  23. }


 
lors de l'execution j'ai une erreure
> Segmentation fault


Message édité par folkN2 le 16-12-2004 à 23:29:21
Reply

Marsh Posté le 16-12-2004 à 23:57:54    

Lis le manuel de curses. Il faut initialiser la lib avant de pouvoir l'utiliser. "man curses" ne marche pas chez moi mais "man ncurses" si
 
curses c'est quand même un niveau au dessus de ce qui était fournit avec le DOS ( il y a même une gestion basique de la souris :D )


Message édité par Kristoph le 16-12-2004 à 23:58:32
Reply

Sujets relatifs:

Leave a Replay

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