remram44
Messages postés15Date d'inscriptionlundi 4 août 2003StatutMembreDernière intervention 8 juin 2007
-
27 févr. 2005 à 12:10
remram44
Messages postés15Date d'inscriptionlundi 4 août 2003StatutMembreDernière intervention 8 juin 2007
-
27 févr. 2005 à 15:13
Bonjour @ tous !
Je cherchais à faire un getche() non bloquant, quand j'ai trouvé
kbhit(). Mais voila : cette fonction n'était pas reconnue par mon
compilateur (DevC++ 4). Après 10 minutes de tests en tous genres, je
m'apperçois que cette fonction ne marche qu'en C et non en C++ ...
D'où ma question, est-il
possible d'utiliser kbhit() en C++, dois-je faire un fichier .c que
j'inclus, ou même refaire tout mon programme en C ?
Sinon, quelqu'un connait-il un autre moyen de faire un getche() non bloquant ?
addamsmercredi
Messages postés121Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention27 juillet 2006 27 févr. 2005 à 13:35
C'est bizarre, moi la fonction kbhit() fonctionne très bien même en C++.
Voici un exemple que je viens de tester pour en être sûr :
#include
#include <conio.h>
// il y a une classe, c'est bien du C++
class truc
{
public:
int bidule;
truc()
{
cout << "Un nouveau truc est crée" << endl;
}
};
int main()
{
truc * t;
t = new truc;
t->bidule = 9;
do
{
if (kbhit())
if (getch() == 27)
// s'arrête lorsque l'on appuie sur la touche échap
return 0;
}
while(1);
}
Mais c'est bien en mode console que tu testais kbhit en C++ ?
Car peut-être (je n'en suis pas sûr) qu'on ne peut l'utiliser qu'en mode console.
remram44
Messages postés15Date d'inscriptionlundi 4 août 2003StatutMembreDernière intervention 8 juin 2007 27 févr. 2005 à 15:13
Une autre question : pendant qu'un thread utilise la console, par
exemple en faisant un getche(), qu'en est t-il des autres thread ?
Peuvent-ils faire un cout sans "déranger" le getche() ?