Detecter 1 touches du clavier en programmation C
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Detecter 1 touches du clavier en programmation C



  1. #1
    invite0e9d082c

    Detecter 1 touches du clavier en programmation C


    ------

    Bonjour à tous,

    J'aimerais savoir comment detecter 1 touche, dans un premier temps, en langage C sans utiliser la touche entrer pour valider. J'utilise eclipse sur linux et il m'ai impossible d'utiliser include <conio.h>.

    Y a t-il une autre bibliothèque qui pourrait remplacer <conio.h>?

    Je dois avouer que je ne suis pas une pro dans ce domaine.

    Pour l'instant j'utilise getchar() pour recuperer le caractere saisi.

    Merci d'avance pour vos suggestions,

    Lexxx.

    -----

  2. #2
    Jack
    Modérateur

    Re : Detecter 1 touches du clavier en programmation C

    et il m'ai impossible d'utiliser include <conio.h>.
    pour quelle raison?

    Tu peux donner ton cahier des charges exact?

    A+

  3. #3
    inviteb9f49292

    Re : Detecter 1 touches du clavier en programmation C

    Citation:
    et il m'ai impossible d'utiliser include <conio.h>.
    pour quelle raison?
    conio.h n'existe que sur Windows...

    tu peux utiliser la bibliothèque "ncurses" qui offre ce genre de service et bien d'autre...

    tu devrais pouvoir utiliser "select" sur le descripteur de fichier correspondant a "stdin".

    Regardes également les "man" de "setbuf" et "unlocked_stdio"

  4. #4
    Jack
    Modérateur

    Re : Detecter 1 touches du clavier en programmation C

    Mais getchar n'est pas dans stdio?

    A+

  5. A voir en vidéo sur Futura
  6. #5
    inviteb9f49292

    Re : Detecter 1 touches du clavier en programmation C

    Si mais, de mémoire, les mémoires tampons des fichiers ("stdin" et "stdout" inclus) sont bloqués par défaut tant que:
    -il y a un caractère "nouvelle ligne" (\n)
    -ils sont plein, mais de mémoire ils font 4ko
    -ils sont vidangés explicitement par "fflush"
    donc "getchar" ne retournera pas tant qu'une de ces conditions n'est pas remplie... Cette politique à pour but d'optimiser les entrées - sorties pour au moins 2 raisons:
    -il y a derrière un changement de contexte (mode utilisateur -> mode noyau) qui coûte cher, donc autant le faire une seule fois pour beaucoup de caractères, que plusieurs plusieurs fois pour 1 seul...
    -souvent le périphérique à lire / écrire est lent (en comparaison du proc), donc même principe que pour le changement de contexte.

    La solution est donc de changer le comportement du tampon grâce à "setbuf"...
    Attention tout ça c'est de mémoire, à vérifier tout de même....

Discussions similaires

  1. lcd clavier 16 touches 16f877
    Par invitefc1671e3 dans le forum Électronique
    Réponses: 4
    Dernier message: 11/04/2011, 13h57
  2. clavier 16 touches
    Par invite412b515c dans le forum Électronique
    Réponses: 2
    Dernier message: 10/05/2007, 11h22
  3. Touches clavier
    Par invite975d9f0f dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 25/10/2005, 14h52
  4. Touches de clavier en panne
    Par azt dans le forum Matériel - Hardware
    Réponses: 8
    Dernier message: 26/04/2004, 10h57
  5. Touches clavier
    Par invite1679091c dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 14/12/2003, 09h11
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...