System.in.read() me donne du ASCII

Résolu/Fermé
Damien - 27 janv. 2005 à 21:31
 Damien - 28 janv. 2005 à 19:56
Bonjour,

donc je programme en Java et le problème c'est que lorsque je fais un ...

int i = System.in.read();

....il me récupère du ASCII, c'est à dire que qd je tape 5 il récupère 53 .
Pour ma part j'aimerais récupérer des entiers "normaux".
Merci pour votre aide.

Damien.

4 réponses

Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 266
28 janv. 2005 à 13:58
Ou un truc du genre :

int i = (int)(char)System.in.read(); 


Dis-moi si ça marche...
Jean-François Pillou

Fondateur de CommentCaMarche.net

3
Merci pour ton aide philtrain, çà me convient parfaitement.
1
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 266
28 janv. 2005 à 14:01
Sinon si tu ne veux pas t'embêter :

int i = (int)System.in.read()-48; 


vu que
48 = 0
49 = 1
...
0
Non malheureusement les deux premières solutions me donnent toujours du ASCII .

Et pour ce qui concerne la 3ème méthode que tu m'a proposé, elle marche effectivement pour les chiffres allant de 0 à 9 ensuite çà ne marche plus.

Merci qd meme pour ton aide.
0
Utilisateur anonyme
28 janv. 2005 à 19:19
Bonsoir,

Voici ma solution:

import java.io.*;
class InOut {
public static void main(String args[]) throws IOException {
BufferedReader entreeClavier = new BufferedReader(
new InputStreamReader(System.in));
System.out.println ("Saisissez une nombre entier :");
String saisie = entreeClavier.readLine();
int nombre = -1;
try {
nombre = new Integer(saisie).intValue();
}
catch(NumberFormatException e) {
e.printStackTrace();
}
System.out.println("Votre nombre : " + nombre);

}
}


Est-ce qu'elle te convient ?


a+
0
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 266
28 janv. 2005 à 13:57
Voir ici en bas de page...

Peut-être devrais-tu essayer :

int i = (char)System.in.read(); 
-1