kkun pourrait m'expliker comment marche cette fonction kbhit ? - C++ - Programmation
Marsh Posté le 28-04-2003 à 22:42:29
ben ca lis les touches appuyés sur le clavier
while(1) c'est une boucle infinie.
et nb_hit++ je suppose que ca compte le nombre de fois où tu as appuyés sur une touche.
Marsh Posté le 28-04-2003 à 22:48:44
while (1)c'est une boucle infinie?
JE pensais k'a la place du "1" on devait mettre une condition du genre " tant qu'on a pas apuyé sur echap, on regarde kelle touche a été frappée"
pour le nbhit++ je pense que tu dois avoir raison
Donc si quelqun sait a koi correspond le while(1) et ce que ca fait la les fflush(stdin)
Marsh Posté le 28-04-2003 à 22:53:56
le while(1) est une boucle infinie, sans doute dans une thread de lecture d'evenements klavier; _kbhit() est une fonction qui bloque jusqu'au prochain claquage clavier
Marsh Posté le 28-04-2003 à 23:01:47
Je vais passer pour un lourd mais tant pis je me lance dans mes questions.
1)c'est quoi claquage clavier
2)c'est quoi une thread
3)Comment feriez vous pour arreter la boucle en appuiyant sur une touche donnée
4)Si j'ai bien compris cette partie de code tourne tel quel(il fo bien sur que je définisse la fonction lit_clavier(); )
ENcore désolé de poser toutes ces questions
Marsh Posté le 28-04-2003 à 23:07:43
Pour info, ça a été répété 36 fois mais bon :
LE FFLUSH(STDIN) EST UNE ABERRATION TOTALE QUI EST INDEFINIE ET QUI SERT DE JUSTIFICATIF AUX PROFS POUR MASQUER LEUR INCOMPETENCE !!!
Désolé de gueuler, mais ça me révolte de voir ça à chaque fois !
Marsh Posté le 29-04-2003 à 00:59:49
Harkonnen a écrit : Pour info, ça a été répété 36 fois mais bon : |
tu vois, il suffit de dire que fflush() ne marche que pour les flux en sortie et que donc ca ne marche pas sur stdin (ne marche pas pouvant signifier que le PC peut se mettre a chanter la cuccarracha si il veux car c'est un comportement non défini).
Et si t'as un problème avec tes anciens profs va leur mettre une droite en personne, pour ma part je suis très satisfait de ceux que j'ai eu.
Marsh Posté le 29-04-2003 à 01:43:03
Si c'est pour géré le clavier, je ne saurais que trop te conseiller d'utilises une lib adaptée à ça et pas des fonctions C plus ou moins standard. Un exemple de tres bonne lib pour faire ça et même plus : www.libsdl.org
Marsh Posté le 28-04-2003 à 22:36:06
Je cherche a utiliser la fonction kbhit pour gérer la gestion du clavier lors d'un jeu vidéo. J'ai fait des recherches sur le net mais je comprends pas exactement comment elle marche et j'aime pas utiliser des trucs que je maitrise pas. Les lignes en gras sont celles sur lesquelles je "bloque"
while(1)
{
if(_kbhit())
{
nbhit++;
fflush(stdin);
touche=lit_clavier();
switch(touche)
{
case SPACE :
...
break;
case HAUT :
...
break;
case BAS :
...
break;
case DROITE :
...
break;
case GAUCHE :
....
break;
}
}
fflush(stdin);
}
Merci d'avance
Message édité par xavy le 28-04-2003 à 22:36:30