dj_titeuf
Messages postés17Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention23 juillet 2009
-
23 juil. 2009 à 19:35
dj_titeuf
Messages postés17Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention23 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?
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 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);
dj_titeuf
Messages postés17Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention23 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?
dj_titeuf
Messages postés17Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention23 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??