Site du zéro: programmer en C TP jeu plus ou moins AIDE

Résolu
Bonjour,
J'ai réalisé le TP01 du site du zéro programmer en C : le jeu du plus ou moins.
A la fin du TP il demande de le peaufiner mais sans donner de réponse. Je n'arrive pas à empêcher un utilisateur d'entrer une lettre (ça donne une boucle infinie) dans le do-while (partie joueur 2 dans une partie à 2 joueurs) alors que j'y arrive en dehors (partie joueur 1 dans la partie à joueurs). On ne peut pas mettre de while dans un do while?
Voici mon code source:
http://pastebin.com/ttEcvBk7

D'avance, merci.

4 réponses

  1. Contributeur
    Enfin, j'ai pu voir ton code.
    fflush(stdin) : à ne jamais utiliser.
    Remplace cette instruction par celle que je t'ai donné avant : int c; while ( (c=getchar()) != '\n' && c != EOF);
    De plus, logiquement, ça se met après un scanf pas avant.

    rand(time(NULL));
    A n'utiliser qu'une seule fois. Mets-le juste après la déclaration de tes variables.
    1. bonjour;
      enregistre votre projet en .C

      si ça marche pas donnez moi une image de Erreur pour bien comprendre votre problème
      1. Contributeur
        .C n'est pas la bonne extension: par définition les fichiers .C, .cpp, .cxx, etc... sont des fichiers de C++; les fichiers C finissant par .c (minuscule)
    2. Contributeur
      Bonjour,

      Je n'ai pas vu ton code.
      Mais pour la boucle infinie, il doit s'agir du buffer clavier non vidé.
      Lorsque tu as fait ton scanf, mets l'instruction suivante :
      {
      int c;
      while( (c=getchar()) != '\n' && c != EOF );

      }

      Cdlt,