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

Résolu
ZZtopless -  
 ZZtopless -
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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  2. karara20 Messages postés 58 Statut Membre 9
     
    bonjour;
    enregistre votre projet en .C

    si ça marche pas donnez moi une image de Erreur pour bien comprendre votre problème
    0
    1. ElementW Messages postés 5690 Statut Contributeur 1 293
       
      .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)
      0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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,
    0