System.in.read() me donne du ASCII

Résolu
Damien -  
 Damien -
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

  1. Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention   63 308
     
    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
  2. Damien
     
    Merci pour ton aide philtrain, çà me convient parfaitement.
    1
  3. Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention   63 308
     
    Sinon si tu ne veux pas t'embêter :

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


    vu que
    48 = 0
    49 = 1
    ...
    0
    1. Damien
       
      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
    2. philtrain
       
      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
  4. Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention   63 308
     
    Voir ici en bas de page...

    Peut-être devrais-tu essayer :

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