Jeu du pendu

Nirolac Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
Nirolac Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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 Date d'inscription   Statut Membre Dernière intervention  
 
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