Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit Soucis en C

20 décembre 2005 à 11:59:39

Je l'avais deja posté mais je suis nouveau et me suis donc trompé de section:p

C'est ici : http://www.siteduzero.com/forum-83-6994-cours-c-chap-sur-les-conditions.html

Merci à vous :)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 décembre 2005 à 12:07:45

Parce que le truc de M@téo est mal fait (bien que l'erreur soit excusable). En effet, si l'utilisateur rentre une connerie, le scanf ne lit pas la connerie, on est d'accord. Donc la variable ne change pas de valeur.

Mais quelle valeur avait-elle avant ? Justemment, un truc dont on ne sait rien, un résidus qui se trouvait en mémoire. Rajoute

printf("%ld", choixMenu);

juste après le scanf et compile. Lance le, rentre "salut" : le scanf ne lira pas ça et ne changera pas la valeur. Si tu obtiens 2, on est fixé, sinon.... bah là jsais pas par contre.

Chez moi, c'est -1881115792
  • Partager sur Facebook
  • Partager sur Twitter
20 décembre 2005 à 13:33:00

merci mais effectivement j'obtiens tjs 2... (logique ta ligne ne fait qu'afficher le choix : n'importe quelle lettre donne la valeur chiffrée 2.
étonnant, non?
Donc y'a aucun moyen de verouiller ca?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 décembre 2005 à 13:52:38

Non ma ligne affiche effectivement le choix. Par contre dire que n'importe quelle lettre donne cette valeur est faux, ou plutôt imprécis : il faut bien que tu comprennes que scanf ne LIT PAS DU TOUT ce que l'utilisateur entre si ce n'est pas un chiffre. Les lettres ont des valeurs précises, qui ne sont juste pas traitées.

Pour annuler ça, il faut donner une valeur à choixMenu avant de tenter de lire celle de l'ordinateur (traditionnellement, la valeur 0).
  • Partager sur Facebook
  • Partager sur Twitter
20 décembre 2005 à 15:26:26

Merci de mettre un titre plus explicite la prochaine fois : Les post-it sont faits pour être lus ! ;)

Selon le règlement, je me vois dans l'obligation de fermer.
  • Partager sur Facebook
  • Partager sur Twitter