Ce n'Système.dans.lire fait retour?
Ce n' :
System.in.read()
retour ? Le la documentation dit :
Retourne:
le prochain octet de données, ou -1 si la fin du flux est atteinte.
Mais par exemple si je suis entrée : 10
je serai de retour 49
. Pourquoi est-ce ?
Vous devez vous connecter pour publier un commentaire.
49
est la valeur ASCII du char1
. C'est la valeur du premier octet.La flux d'octets qui est généré lorsque vous entrez 10Entrée sur votre console ou votre terminal contient les trois octets
{49,48,10}
(sur mon Mac, peut mettre fin à 10,12 ou 12 au lieu de 10, en fonction de votre Système).La sortie de l'extrait de simple
après la saisie d'un 10 et d'appuyer sur la touche enter, est (sur ma machine)
10
?10
est de deux octets. Un octet représentant les caractères 1, suivi par un octet représentant le personnage0
.System.in
voit sont les octets de ce texte stream. Pour ascii et ascii étendu (donc, pas mon petit bonhomme de neige là-haut), découvrez ascii-code.comSystem.in.read()
lit juste un octet.49 est le Unicode valeur de point pour 1.
Essayez d'imprimer:
System.out.println((char)49);
Cela vous aidera à comprendre plus.
Lorsque vous entrez
10
, elle n'est pas lue comme un entier, mais comme une Chaîne de caractères ou, plus précisément, ici, un tableau d'octets.49 est le code ASCII pour le caractère
1
.