Jeu du pendu

Nirolac Messages postés 11 Statut Membre -  
Nirolac Messages postés 11 Statut Membre -
Bonjour à tous !

Je vous sollicite aujourd'hui à cause d'un problème sur l'exercice du pendu le problème est que lors de la première entré d'un caractère il n' y a pas de problème par contre lorsqu'on entre un second caractère le programme s'arrête, je pense que le problème est l'emplacement de la fonction pour entré un caractère (du moins je pense :D), quelqu'un aurai t'il l'amabilité de m'aider svp ?

voici mon code :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char lireCaractere() 
{ 
    char caractere = 0;
 
    caractere = getchar(); 
    while (getchar() != '\n') ;
 
    return caractere; 
}

int main(int argc, char *argv[]){
	char c = 0;
	char motSecret[] = "marronier";
	int i = strlen(motSecret);
	printf("\n");
	int k =2;
	printf("%c",motSecret[0]);
	while(i >= k){
		if(k != i){
			printf("*");
		}else{
			printf("%c",motSecret[i - 1]);
		}
		++k;
	}
	printf("\n");
	c = lireCaractere();
	int cpt = 1;
	printf("%c",motSecret[0]);
		while(i-1 >= cpt){
			if(cpt != i-1){
				if(c == motSecret[cpt]){
					printf("%c",c);
				}else{
					printf("*");
				}
			}else{
				printf("%c",motSecret[i - 1]);
			}
			++cpt;
		}
		c = lireCaractere();
		printf("\n");
		return 0;
	}


Bonne journée
A voir également:

1 réponse

fiddy Messages postés 11653 Statut Contributeur 1 847
 
Bonjour,

Normal que le programme s'arrête, tu n'as pas fait de boucle de lecture (la ligne c=lireCaractere est en dehors du while.

Note, comment comptes-tu afficher petit à petit les lettres découvertes par l'utilisateur à la place des étoiles ? Car là, tu es parti pour n'afficher que le dernier caractère découvert par l'utilisateur.
Généralement, on utilise une autre chaîne de caractères pour cela
0
Nirolac Messages postés 11 Statut Membre
 
Bonjour fiddy oui du coup j'ai avancé dessus et j'ai changé un peu mon code, oui je viens de voir que ça n'affichera qu'un seul caractère à la fois merci de me l'avoir signalé je vais utilisé une seconde chaîne de caractère et je mettrai ensuite mon code
Bonne journée
0