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

C Discussion :

Probleme getchar dans une boucle


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par défaut Probleme getchar dans une boucle
    bonjour à tous,

    je suis entrain de developper un jeu de la vie avec la bibliotheque ncurses.

    J'observe un probleme dans lors de mes test.

    Par exemple, lorsque je veux quitter l'application, si j'appuie tout de suite, pas de probleme mais à partir du 2me passage dans ma boucle, ca ne fonctionne plus, soit je pars en boucle infinie, soit mon programme se stop prématurément.

    J'ai pensé à un probleme de vidange de getchar mais lorsque je positionne un videbuffer, ma saisie est vérouillée et je ne peux plus rien entrer (je reste donc bloqué dans mon menu).

    J'avoue ne pas voir du tout le probleme...

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    Hello,

    C'est normal : le seul endroit où tu fais appel à « nodelay() » est dans « jeu() », fonction elle-même appelée uniquement quand tu choisis « 1 » et que l'utilisateur a fait un premier choix.

    Donc, au départ, ton « getch() » fonctionne normalement, puis tu appelles nodelay() et quand tu reviens, ton while principal devient une boucle infinie puisque getch() n'attend plus l'utilisateur. A contrario, si tu choisis autre chose que « 1 » la première fois, alors tes appels à « vide_buffer() » seront bloquants puisque tu n'auras pas encore fait appel à nodelay().

    Solution : retire tous les nodelay() de ton programme, puis ajoute simplement un « nodelay(stdscr,TRUE); » en entrant dans vide_buffer() avant « while (getch()!=ERR); » et un « nodelay(stdscr,FALSE); » juste avant de sortir de cette fonction pour rétablir le fonctionnement normal.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Par défaut
    Bonsoir,

    Merci beaucoup pour cette explication très claire.


  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    À ton service mais n'oublie pas

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

Discussions similaires

  1. probleme de création de variable dans une boucle
    Par misterweb dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2007, 19h21
  2. probleme de chargement de movieClip dans une boucle
    Par Fredd_b dans le forum Flash
    Réponses: 2
    Dernier message: 11/01/2007, 17h24
  3. Réponses: 3
    Dernier message: 01/09/2005, 11h56
  4. probleme de passage dans une boucle
    Par EssaiEncore dans le forum ASP
    Réponses: 16
    Dernier message: 15/02/2005, 17h39
  5. probleme de recordset dans une boucle do while
    Par Shoryu dans le forum ASP
    Réponses: 18
    Dernier message: 05/07/2004, 15h30

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