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.
A voir également:

4 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
karara20 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   9
 
bonjour;
enregistre votre projet en .C

si ça marche pas donnez moi une image de Erreur pour bien comprendre votre problème
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
.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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
ZZtopless
 
Merci beaucoup !
0