Salut tout le monde :wink:
Qu'elle est l'équivalent de readkey (de Pascal) en C ?
C'est à dire la fonction qui lit un et un seul caractère (sans avoir besoin de cliquer sur retour chariot)
Merci :wink:
Version imprimable
Salut tout le monde :wink:
Qu'elle est l'équivalent de readkey (de Pascal) en C ?
C'est à dire la fonction qui lit un et un seul caractère (sans avoir besoin de cliquer sur retour chariot)
Merci :wink:
Il n'y en a pas de standard je crois.
Si t'es sous Windows, regarde dans <conio> la fonction getch().
La réponse se trouve dans la FAQ je pense.
Nas'
Désolé, j'ai déjà essayé getch(), getchar() et ca ne marche pas;
ca nécéssite un retour chariot pour valider la lecture.
Sachant que j'utilise Bloodshed Dev-C++ version 4
Pour getchar(), c'est normal, elle est bufferisée donc tu dois utiliser le retour pour valider.
Mais pour getch(), ce n'est pas normal. Elle envoie directement le caractère.
Je pense que le problème vient de la version de <conio.c> livrée avec DevC++. Ce n'est pas la "bonne" car j'avais aussi ce problème.
Essaye avec ce Devpack de mettre cette version :
http://www.ece.fr:8000/%7Elavoillo/c/Conio/Conio.DevPak
Nas'
Merci Nasky
vous aviez raison pour le getch, j'ai compilé le programme ds Turbo C et elle a marché même si le lien que tu m'a donné ne marche pas.
Mais en ce qui concerne ce que tu m'a dit tout à l'heure concernant la comparaison du caractère avec '\n' sorry ca ne donne pas de résultat ni ds Dev C++ ni ds Turbo C
j'ai fais comme tu l'a dis :
et ca affiche 0Code:
1
2
3
4
5
6
7
8 e=0; c=getch(); if (c =='\n') /* c etant declaré char */ { e=1; } printf("%d",e);
J'ignore si on reçoit le \n avec getch().
Ce qui est sûr par contre, c'est qu'on reçoit le \r.
Normal, tu es en mode 'raw' avec getch() Le caractère retourné est '\r' (PC/DOS/Windows) et non '\n'. Quand on s'écarte de la norme, il faut s'attendre à des surprises...Citation:
Envoyé par elmessoussi
TOASTED!Code:
1
2
3
4 int c; <...> if (c =='\r')