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 :

Entree Sortie bloquante


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 115
    Par défaut Entree Sortie bloquante
    Bonjour à tous
    Je suis en train de faire un serveur de chat multithread.
    Aujourd'hui j'ai un problème totalement idiot : je demande au client lors la connexion d'indiquer un nickname

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char m_name[128] = "";
    printf("Enter your nick : ");
    gets(m_name);
    printf("NAME = %s\n",m_name);
    ... // suite des opérations
    Le printf n'attend pas la fin du get pour afficher NAME = rien du tout vu que je n'ai pas eu le temps de taper le nom. La suite des opérations se met également en marche
    Avec scanf, ça marche mais je ne peux pas saisir une ligne entière (avec des espaces et tout ça).

    Bref comment faire une saisie bloquante (attendre que j'ai tapé ENTREE par exemple) avant d'aller jouer avec m_name ?
    C'est con mais je suis coincé et je ne m'explique pas ce comportement étrange.

    Compilateur : DevCPP
    Note : si on fait deux gets() de suite ça marche mais il faut appuyer deux fois sur ENTREE
    C'est vraiment bizarre
    Merci

  2. #2
    Membre très actif
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 366
    Par défaut
    Tu as essayé fgets?

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     fgets(m_name,128,stdin);
    ne marche pas mieux
    Je précise que je ne suis pas dans un thread mais dans l'initialisation du code Client.

  4. #4
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    C'est un classique..
    Si la lecture sur stdin n'est pas bloquante c'est qu'il restait des choses dans stdin.
    Typiquement tu fais un fgetc(stdin) qui demande un caractere, mais qd tu valides il reste le saut de ligne dans stdin, seul le premier caractere est consommé par fgetc().
    Il te faut alors vider le buffer d'entree standard après chaque lecture sur l'entree standard

    Regarde la FAQ

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 115
    Par défaut
    Super ça marche
    Merci bcp

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

Discussions similaires

  1. [IO] Les fonctions d'entrée/sortie en Java
    Par GBAGO dans le forum Langage
    Réponses: 14
    Dernier message: 20/12/2010, 13h03
  2. Contraintes d'entrée-sortie
    Par Vigneau dans le forum Assembleur
    Réponses: 1
    Dernier message: 30/09/2006, 15h39
  3. Entrée sortie sous unix
    Par miminou dans le forum Administration système
    Réponses: 6
    Dernier message: 22/06/2006, 15h51
  4. Format d'entrée/sortie
    Par genteur slayer dans le forum Fortran
    Réponses: 1
    Dernier message: 20/03/2006, 13h51
  5. Flot d'entree / sortie
    Par Krishna dans le forum C++
    Réponses: 8
    Dernier message: 06/09/2004, 09h54

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