IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Assigné une fonction à une touche du clavier


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Assigné une fonction à une touche du clavier
    Hello,

    Voila, je débute dans le C++ et j'aimerais savoir, comment faire pour que le programme reconnaisse une touche.

    Par exemple, je fais un switch et j'aimerais que si l'utilisateur appuie sur "Esc" tel ou tel action se passe. J'ai essayé:

    ...

    case "Esc":
    ...
    break;

    ______

    ...

    case ("Esc"):
    ...
    break;

    et encore d'autres mais rien ne fonctionne.

    Je vous remercie d'avance pour vos éclaircissements

    @+ bonne journée

  2. #2
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    Chaques touche du clavier est associé à un code numérique.

    Je ne connais pas le code par coeur mais tu peux afficher le résultat de ta pression de touche sur la sortie standard.

  3. #3
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Qu’utilises-tu pour capturer les événements clavier ?

    La c'est sur c'est faut
    Car case ne prend pas de chaîne de caractère !

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je sais bien que c'est faux. Ce que je ne sais pas, c'est écrire avec la bonne syntaxe.

    Qu’utilises-tu pour capturer les événements clavier ?
    Je ne suis pas sûr de comprendre la question.

    J'ai lu que je pouvais utilisé le code ASCII de la touche du clavier pour que le programme la reconnaisse, mais encore une fois, je ne connais pas la syntaxe.

    Je vais résumé le plus clairement possible mon problème:

    Tout d'abord, étant débutant, je suis en mode console et j'utilise Visual Studio.NET

    J'ai un exercice qui me demande d'afficher un menu avec différents choix:

    un choix numéro 1 (il faut entré 1 suivit de la touche Enter pour valider le choix)
    un choix numéro 2
    (il faut entré 2 suivit de la touche Enter pour valider le choix)
    un choix numéro 3
    (il faut entré 3 suivit de la touche Enter pour valider le choix)


    un choix où il faudrait pouvoir, en cliquant sur la touche Escape (Esc) du clavier, fermer le programme.

    Voici le code source:


    void main (void)
    {
    /****** Variables locales (déclaration et initialisation) ******/

    int inChoix = 0;




    /****** Blocs d'instructions ******/


    cout << "MENU PRINCIPAL" << endl;
    cout << "**************" << endl << endl;
    cout << "[ 1 ] OPTION No 1" << endl;
    cout << "[ 2 ] OPTION No 2" << endl;
    cout << "[ 3 ] OPTION No 3" << endl;
    cout << "[ 4 ] OPTION No 4" << endl;
    cout << "[ 5 ] OPTION No 5" << endl << endl;
    cout << "[ ESC ] Quitter le programme" << endl;

    cin >> inChoix; // L'utilisateur entre son choix.



    switch (inChoix)
    {

    case 1:
    cout << "Vous avez choisi l'OPTION No 1" << endl;
    system ("PAUSE");

    break;

    case 2
    :
    cout << "Vous avez choisi l'OPTION No 2" << endl;
    system ("PAUSE");
    break;

    case 3:
    cout << "Vous avez choisi l'OPTION No 3" << endl;
    system ("PAUSE");
    break;

    case 4:
    cout << "Vous avez choisi l'OPTION No 4" << endl;
    system ("PAUSE");
    break;

    case 5:
    cout << "Vous avez choisi l'OPTION No 5" << endl;
    system ("PAUSE");
    break;

    default:
    break;

    }


    }
    Je le répète, mon but est de pouvoir, en cliquant sur la touche Esc du clavier, fermer le programme (sans devoir faire "Enter" après)

  5. #5
    Membre averti Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Points : 412
    Points
    412
    Par défaut
    cin te force à faire un retour chariot si tu veux valider ta commande.

    Je crois qu'avec la méthode read tu peux t'en sortir.

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Faut regarder dans les spécificités des API de ton OS.
    Il y a des trucs semi-portables comme (n)Curses/PDCurses.

    Avec les streams, tu dois obligatoirement appuyer sur entrée, quelle que soit la fonction des streams -- sauf bidouillage du terminal, cela dépend une fois de plus des OS.

Discussions similaires

  1. appliquer une fonction à une fonction
    Par stracoma dans le forum C++
    Réponses: 6
    Dernier message: 20/03/2015, 16h35
  2. Réponses: 2
    Dernier message: 09/03/2014, 23h10
  3. Assigner une fonction à une classe? Pas simple!
    Par Spidyy dans le forum Langage
    Réponses: 23
    Dernier message: 10/09/2009, 19h36
  4. passer en paramettre d'une fonction une fonction
    Par RoM3Ro dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/06/2006, 15h54
  5. Lire une fonction numérique sur le clavier
    Par ladognon dans le forum Langage
    Réponses: 3
    Dernier message: 08/04/2006, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo