begin process at 2012 05 30 02:42:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

kbhit en C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

kbhit en C++

dimanche 27 février 2005 à 12:10:55 | kbhit en C++

remram44

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 ?

Voici mon code :

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
    char carac;
    while(1)
    {
        if( kbhit() ) // On ne fait un getche() que si ya quelque chose
        {
            carac=getche();
            printf("\rVous avez appuie sur \"%c\"\n",carac);
        }
    }
    return 0;
}


------------------------------------------------

remram44, quelque part devant un ecran.
dimanche 27 février 2005 à 13:35:31 | Re : kbhit en C++

addamsmercredi

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 <iostream.h>
#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.

dimanche 27 février 2005 à 14:46:21 | Re : kbhit en C++

remram44

Oui, c'était bien en mode console que je suis (d'où le getche()). Tu utilises quel compilateur ?

------------------------------------------------

remram44, quelque part devant un ecran.
dimanche 27 février 2005 à 14:52:41 | Re : kbhit en C++

addamsmercredi

J'utilise Borland C++.
dimanche 27 février 2005 à 15:13:19 | Re : kbhit en C++

remram44

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() ?

------------------------------------------------

remram44, quelque part devant un ecran.


Cette discussion est classée dans : include, carac, bloquant, kbhit, getche


Répondre à ce message

Sujets en rapport avec ce message

problème avec getche( ) [ par juancho2786 ] Bonsoir tout le monde et bonne année.Je voulais juste savoir pourquoi la fonction getche() ( pour sauter le ) ne marche pas chez moi? J'utilise Micro while (!kbhit()); [ par DJag ] >DJagSalut à tousJe voudrais savoir quel #include faut-il mettre pour que DEV C++ 4 reconnaisse ceci:while (!kbhit());à la compilation DEV C++ me mais kbhit() DevC++ [ par sebleboss2002 ] J'ai vu sur le forum que cette question a déjà été posée, mais vu le manque de réponses, je la repose :Quel fichier intégrer pour pouvoir utiliser kbh kbhit() [ par deedstacktyk ] deeds tacktyk fread [ par sebleboss2002 ] Salut tout le monde !J'ai fait un ptit bout de code pour lire un fichier .txt avec fread, mais, alors que le fichier ne contient que le mot "prout", l array size too large [ par gameking ] Bonjour à vous, voici mon probleme. Dans mon programmr j'ai une structure et lorsque je la compile j'ai l,euueur array size too large. Je veux garder fread / fwrite [ par helena123 ] Coucou les loulous,je ne comprends pas :j ecris dans un fichier un champs de bits et lorsque je veux le relire et l afficher a l ecran, il me l ecrit Ouverture du lecteur de CD-ROM [ par EgorLetov ] j'ai un big problème je n'arrive pas à ouvrir mon lecteur cd sous windows en cpp. J'utilise VCplusplus. JE N'UTILISE PAS DE MFC !!!#include "windows.h Besoin de fichiers "*.h" [ par AxeL364 ] Bonjour,J'ai besoin des fichiers suivants :#include #include #include #include #include #include #include <netdb.h Erreur DeviceIoControl ??? pk acces refusé ? [ par akk ] Bonjour,Voila lorsque j'execute ce code :(on passe le nom du lecteur en parametre exemple : main C)#include #include <iostre


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales