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 :

Code ASCII Flèche de direction du clavier


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut Code ASCII Flèche de direction du clavier
    Bonsoir ,

    J'utilise un programme qui gère les flèches de direction du clavier (Haut, Bas, Gauche, Droite).

    J'utilise _getch() pour récupérer la saisie, est-ce que quelqu'un a une idée svp ?car je n'ai pas trouvé sur le net .

    Merci !

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 442
    Par défaut
    Tu travailles sur quelle machine et avec quel système d'exploitation ? Parce que si c'est un Minitel en Videotex que tu exploites, par exemple, ce sera les codes 08, 09, 10 et 11 mais il est peu probable que ce soit ce que tu cherches. Donc, donne un maximum de détails.

    Les touches du curseur ne font pas partie du code A.S.C.I.I. Tu auras donc bien du mal à les obtenir. Sur PC, on utilise traditionnellement les codes C.S.I. des terminaux D.E.C. (standard A.N.S.I.). Une séquence CSI, c'est « Esc [ » (1B 5B), suivis d'un certain nombres de code.

    Pour le déplacement du curseur, c'est un nombre optionnel de pas (par défaut 1, donc jamais précisé par les touches du curseur) suivi de « A », « B », « C » ou « D » pour le haut, le bas, l'avant (donc droite) et l'arrière (donc gauche), respectivement.

    Il y a donc trois caractères émis sur un PC chaque fois que l'on appuie sur une touche du curseur.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    Merci pour ta réponse,
    Ah ça parait compliqué tou cela, moi j'utilise toujours ACII pour les touches comme (alphabets, ESC, ENTRER...) et ça marche bien.

    Je développe sous windows en c++ sous visual studio 2008 .

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 442
    Par défaut
    Citation Envoyé par seanbean Voir le message
    Merci pour ta réponse,
    Ah ça parait compliqué tou cela, moi j'utilise toujours ACII pour les touches comme (alphabets, ESC, ENTRER...) et ça marche bien.
    Oui, parce que l'alphabet, le code ESC et le retour à la ligne sont des codes définis dans l'ASCII (initialement pour piloter les terminaux). Et ce n'est pas le cas des touches du curseur.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Par défaut
    ah je comprends, donc il faut gérer deux types d'ASCII si j'ai bien compris

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 442
    Par défaut
    Il n'y pas « deux types d'ASCII ». A.S.C.I.I. signifie « American Standard Code for Information Interchange » et concerne un jeu de caractères bien défini, à savoir les 128 premiers caractères de cette page (la table du haut). 128 et pas 255 car le bit de poids fort des octets lors des transmissions séries était un bit de parité.

    Sur ces 128 caractères, les 32 premiers ne sont pas affichables car il s'agit de caractères de contrôle (c'est d'ailleurs l'origine de la touche Ctrl que l'on trouve sur pratiquement tous les ordinateurs). Ils servent aux retours à la ligne et autres, mais également à modifier l'état du terminal, faire un saut de page, etc. Le caractère « ESC » (Escape) signifie Échappement et est là, en principe pour indiquer que la séquence qui va suivre ne fait pas partie du flux ordinaire, mais est un ordre à l'intention du terminal.

    Ça veut donc dire deux choses :

    • L'ASCII est un jeu de caractères utilisé par 99,99% des ordinateurs de la planète. Y compris à travers des jeux de caractères plus récents tels que l'Unicode (à travers UTF-8) ou l'ISO-8859-1, qui sont « compatibles » dans leur majeure partie (leurs jeux commencent par les mêmes caractères) ;
    • Il n'y a pas de code dédié aux touches du curseur, ce qui t'empêche de les lire directement, mais il y a une séquence de contrôle associée.


    Il faut donc lire tous les caractères et vérifier s'ils forment une séquence connue, et agir en conséquence.

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 287
    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 287
    Par défaut
    Si tu es en console, passe par une lib dédiée comme (n)curses/pdcurses.
    En mode graphique, lis la doc du framework que tu utilises, tout cela sera déjà probablement supporté.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Menu principale et flèche du direction clavier
    Par oami89 dans le forum VB.NET
    Réponses: 0
    Dernier message: 31/03/2011, 13h15
  2. Code ASCII Flèche de direction du clavier
    Par seanbean dans le forum Windows
    Réponses: 3
    Dernier message: 25/10/2010, 16h14
  3. [Turbo Pascal] Code ASCII touche retour et flèches
    Par Bibou_ini dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 29/05/2009, 08h18
  4. Liste des numéros des touches du clavier - Liste des codes Ascii
    Par Filippo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/08/2008, 16h11
  5. Les flèches de direction de clavier
    Par ratsmok dans le forum Débuter
    Réponses: 5
    Dernier message: 19/04/2008, 21h08

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