A voir également:
- Tester entrées clavier
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester son pc - Guide
- Comment taper / sur clavier - Guide
- Clavier de l'ordinateur - Guide
2 réponses
Tu veux que ton programme bloque sur cette fonction tant que l'utilisateur n'a pas appuyé sur la touche ? Ou que le programme teste l'appuie de la touche sa S s'arrêter sur la fonction ?
#include <stdio.h>
#include <windows.h>
int key_pressed(int key)
{
return (GetAsyncKeyState(key) != 0);
}
int main()
{
int flag = 0;
int key;
while (1)
{
key = key_pressed(VK_LEFT);
if (key && !flag)
printf("LEFT key pressed o/\n");
if (!key && flag)
{
printf("LEFT key released :(\n");
flag = 0;
}
flag = (key ? 1 : 0);
}
return (0);
}
Tu devrais pouvoir un truc comme ça (pas l'habitude du C Windows, désolé), mais c'était assez moche d'être aussi peu portable.
Si tu l'utilises pour un jeu, tu voudras probablement gérer plusieurs keys, et les stockant dans un tableau de state, par exemple.
Sinon, comme son nom l'indique, GetAsyncKeyState() est non bloquant, ce qui fait que ton while (1) va tourner en boucler -- ce que tu peux, ou non, vouloir pour ton jeu --, si tu veux faire autrement, tu peux utiliser getch() (toujours pas portable, mais plus facilement adaptable sous Unix.
PS: Trouvé en 1mn sur Google
Tu peux faire :
Sinon, tu peux utiliser _getch(). Dans ce cas, la fonction attendra que l'utilisateur appuie sur une touche (la lettre n'apparaîtra pas à l'écran).
Note : tu as posté ton sujet en C. Et tu parles de C++... En quel langage le veux-tu ?