Je veux sortir le code ASCII de la dernière touche que j'ai appuyée, toutes les x secondes.Afficher quelque chose toutes les x secondes avec une sortie différente
A titre d'exemple:
Si je presse un (97), le terminal devrait afficher 97 tous les x secondes. Quand maintenant j'appuie sur w (119), le programme devrait maintenant imprimer le 119 au lieu du 97. Jusqu'ici mon programme imprime juste la première clef que j'ai pressée.
Voici la principale et l'autre méthode:
int main(int argc, char const *argv[]){
printf("Hello World!");
while(1){
movePlayer();
fflush(stdout);
sleep(1);
}
return 0;
}
void movePlayer(){
system("/bin/stty raw");
int input = getchar(); //support_readkey(1000);
//fprintf(stdout, "\033[2J");
//fprintf(stdout, "\033[1;1H");
printf("\b%d",input);
system("/bin/stty cooked");
}
EDIT:
Avec un peu de tests je l'ai maintenant une méthode qui permet de résoudre mon problème
int read_the_key(int timeout_ms) {
struct timeval tv = { 0L, timeout_ms * 1000L };
fd_set fds;
FD_ZERO(&fds);
FD_SET(0, &fds);
int r = select(1, &fds, NULL, NULL, &tv);
if (!r) return 0;
return getchar();
}
c'est parce que 'getchar' attend exactement un caractère; vous devez utiliser 'read' à la place. –