IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

getch()


Sujet :

Réseau C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 24
    Points
    24
    Par défaut getch()
    BOnjour,

    J'ai fait un programme avec les sockets, j'ai une boucle infini qui recois et envoi les donner de maniére continu, je voudrai pouvoir stopper cette boucle a l'aide d'une pression de touche avec getch(), mais malheuresement en faisant un truc du genre while(getch()) j'ai peur que cela bloque ma boucle en attendant une frappe de touche...

    Comment faire?

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: getch()
    Citation Envoyé par zbooon
    J'ai fait un programme avec les sockets, j'ai une boucle infini qui recois et envoi les donner de maniére continu, je voudrai pouvoir stopper cette boucle a l'aide d'une pression de touche avec getch(), mais malheuresement en faisant un truc du genre while(getch()) j'ai peur que cela bloque ma boucle en attendant une frappe de touche...

    Comment faire?
    <pas portable>
    On teste avant avec if (kbhit()), mais c'est barbare.

    Sinon, on utilise select() ou poll() qui sont faits pour ça.
    </>
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    j'ai du mal a trouver de l'aide pour apprendre a utiliser ces fonctions...

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par zbooon
    j'ai du mal a trouver de l'aide pour apprendre a utiliser ces fonctions...
    man select
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Re: getch()
    Citation Envoyé par Emmanuel Delahaye
    <pas portable>
    On teste avant avec if (kbhit()), mais c'est barbare.

    Sinon, on utilise select() ou poll() qui sont faits pour ça.
    </>
    Merci encore pour votre aide(je compte meme plus le nombre de probléme que vous m'avez aidé a resoudre sur ce forum :p )

    Mais pourquoi dire que Select n'est pas portable, il marche sous windows (la je m'en sers) et linux (man linux: http://man.developpez.com/man2/select.2.php)...

    Ou alors c'est moi qui ne comprend pas la definition du mot portable...

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: getch()
    Citation Envoyé par zbooon
    Citation Envoyé par Emmanuel Delahaye
    <pas portable>
    On teste avant avec if (kbhit()), mais c'est barbare.

    Sinon, on utilise select() ou poll() qui sont faits pour ça.
    </>
    Mais pourquoi dire que Select n'est pas portable, il marche sous windows (la je m'en sers) et linux (man linux: http://www.linux-kheops.com/doc/man/.../select.2.html)...

    Ou alors c'est moi qui ne comprend pas la definition du mot portable...
    http://emmanuel-delahaye.developpez.com/notes.htm#standard

    Sous Windows 98, le fonctionement de select() est bizarre (notamment la partie timer qui, à ma connaissance, ne fonctionne pas du tout).

    Ce qu'il est important de savoir, c'est que select() n'est pas une fonction standard du C, mais que c'est une fonction système au standard POSIX.1.

    Les systèmes unixoides sont ceux qui implémentent le mieux POSIX.1. Windows fait ce qu'il peut, mais souvent, la fonction existe, ca compile sans broncher, mais le comportement n'est pas celui attendu.

    Il est possible que ça fonctionne mieux avec Windows XP, je n'ai pas essayé.

    Sinon, kbhit() est strictement DOS/Windows, (même si on arrive à le simuler sur unixoide, avec select(), justement et en bidouillant un peu avec les termios...)
    Pas de Wi-Fi à la maison : CPL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. debutant: pb avec getch
    Par richton95 dans le forum C
    Réponses: 27
    Dernier message: 01/10/2005, 09h22
  2. diffrérence entre getch et getche ?
    Par Le Pharaon dans le forum C
    Réponses: 5
    Dernier message: 16/09/2005, 18h04
  3. Le buffer clavier avec cin, et getch()
    Par Info420 dans le forum SL & STL
    Réponses: 1
    Dernier message: 06/12/2004, 12h45
  4. getch, wgetch...
    Par drKzs dans le forum C
    Réponses: 8
    Dernier message: 16/09/2003, 23h16
  5. getch() avec gcc
    Par Jorus dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 16/12/2002, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo