Bonsoir, ou bonjour peut être^^


Je ne comprends pas ce qui cloche dans le code suivant.

Structure

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct joueur{
	char nom[TAILLE_MAX_NAME];
	char type[6];
	char id;
}Joueur;

Code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Joueur* action_affecteJoueur()
{
	Joueur* J=malloc(2*sizeof(Joueur));
	char nom1[TAILLE_MAX_NAME];
	char nom2[TAILLE_MAX_NAME];
	char rep='n';
	printw("Le joueur 1 choisit son type de pièce\n");
	printw("Joueur1 entrez votre nom: \n");
	scanw("%s",nom1);
	strcpy(nom1,J[0].nom);
	printw("Joueur2 entrez votre nom: \n");
	scanw("%s",nom2);
	strcpy(nom2,J[1].nom);
	printw("%s Voulez vous jouer les Tigres ? (o/n)\n",J[0].nom);
	scanw("%c",&rep);
	if(rep=='o')
	{
		printw("OK");
		strcpy(J[0].nom,"TIGRE");
		strcpy(J[1].nom,"CHEVRE");
		J[0].id='T';
		J[1].id='C';
 
 
	}
	else
	{
		printw("KO");
		strcpy(J[0].nom,"CHEVRE");
		strcpy(J[1].nom,"TIGRE");
		J[0].id='C';
		J[1].id='T';
	}
getch();//attente saisie de n'importe quel caractère pour test
	clear();
	return J;
}
Le fait est que lorsque je lance la fonction affecteJoueur. J'entre un nom pour le joueur 1, Puis pour le joueur 2.
Ensuite je fais une saisie d'un caractère o ou n.

Mais il semblerait que la saisie ne marchent pas.

Je m'explique J[0].nom est thhéoriquement censé contenir le nom du joueur 1. Hors à l'affichage de la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
printw("%s Voulez vous jouer les Tigres ? (o/n)\n",J[0].nom);
La valeur est remplacé par un espace au lieu de la chaine entré.


De plus, au moment de la saisie du rep tout semble bien se passer; OK s'affiche si on entre o; sinon KO s'affiche.

Donc scanw marche bien du moins avec un caractère, ou peut être je l'utilise mal pour les chaines ? Pourtant ce devrait être bon si l'utilisation est analogue à scanf.



Merci pour vos remarques.