Site du zéro: programmer en C TP jeu plus ou moins AIDE
Résolu
ZZtopless
-
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.
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
-
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. -
bonjour;
enregistre votre projet en .C
si ça marche pas donnez moi une image de Erreur pour bien comprendre votre problème -
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, -