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

Résolu/Fermé
ZZtopless - 28 juin 2013 à 14:05
 ZZtopless - 29 juin 2013 à 13:25
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
29 juin 2013 à 09:48
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 mercredi 19 juin 2013 Statut Membre Dernière intervention 13 juillet 2014 9
28 juin 2013 à 17:05
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 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
29 juin 2013 à 00:02
.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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
28 juin 2013 à 18:53
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
Merci beaucoup !
0