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
Le fait est que lorsque je lance la fonction affecteJoueur. J'entre un nom pour le joueur 1, Puis pour le joueur 2.
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; }
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 ligneLa valeur est remplacé par un espace au lieu de la chaine entré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part printw("%s Voulez vous jouer les Tigres ? (o/n)\n",J[0].nom);
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.
Partager