Affichage variables (printf)

dj_titeuf Messages postés 17 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 23 juillet 2009 - 23 juil. 2009 à 19:35
dj_titeuf Messages postés 17 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 23 juillet 2009 - 23 juil. 2009 à 23:00
Bonjour,

Ayant commencé à apprendre le langage C très récemment, j'ai pu voir (de façon partielle) l'utilisation de printf(). J'ai ainsi pu voir comment grâce à cette fonction il était possible d'afficher à l'écran des variables de type entiers (avec %d) par exemple. Dans un petit jeu simpliste que je tente de faire pour m'entraîner, je désire demander aux joueurs (au nombre de 2) leur pseudo, afin de pouvoir les utiliser pour nommer les joueurs. Concrètement, j'avais codé ceci (extrait de code), sans succès:

char lePseudo1[10];
char lePseudo2[10];
int nombre;

puts("\nJoueur 1, quel est votre pseudo?\n");
gets(lePseudo1);
puts("\nJoueur 2, quel est votre pseudo?\n");
gets(lePseudo2);

printf("\n%c, rentrez votre nombre: ", lePseudo1);
scanf("%d", &nombre);

printf("\n%c, c'est à vous!\n\n", lePseudo2);

...


Pourriez-vous m'expliquer ce qui ne va pas, et comment trouver une solution?

Merci d'avance.

3 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
23 juil. 2009 à 20:38
Remplace juste gets(lePseudo1) par scanf("%s", lePseudo1); De même pour l'autre.
Il n'y a pas de "&" devant la variable lePseudo, car lePseudo est un tableau (donc un pointeur, mais tu étudieras cela bien plus tard :p).
Retiens juste pour l'instant: On met & devant une variable dans un scanf, mais pas devant un tableau.

Ensuite dans un printf:
- %d ou %i pour un entier
- %c pour un seul caractère
- %s pour une suite de caractères (donc une chaîne de caractères).
- %f pour des flottant
- etc...

Remplace donc:
printf("\n%c, c'est à vous!\n\n", lePseudo2);
Par:
printf("\n%s, c'est à vous!\n\n", lePseudo2);

Tout devrait fonctionner.
0
dj_titeuf Messages postés 17 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 23 juillet 2009
23 juil. 2009 à 22:43
Ok, merci pour ta réponse, je teste ça dès maintenant. Si un problème survient, je reviendrai t'en faire part. Au passage, puisqu'on parlait de get, j'ai lu sur cette page que l'utilisation de fgets était conseillée pour éviter des problèmes de saisie incorrecte (lettres au lieu de nombres par exemple, qui provoque des problèmes avec scanf). Mais je n'ai pas bien compris son utilisation... Pourrais-tu me l'illustrer avec un exemple simple stp?
0
dj_titeuf Messages postés 17 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 23 juillet 2009
23 juil. 2009 à 23:00
Je viens d'essayer les modifications que tu m'as proposées. En n'effectuant que ces modifs là, ça ne fonctionne pas, en fait les deux phrases demandant le pseudo des deux joueurs apparaissent d'un coup, sans laisser la possibilité de répondre. J'ai alors pensé à changer les "puts" par "printf", et là, ça fonctionne très bien! Mais...pourquoi??
0
Rejoignez-nous