IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[Débutant] console , entrée clavier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 27
    Points : 20
    Points
    20
    Par défaut [Débutant] console , entrée clavier
    Bonjour, j'ai besoin d'aide pour un programme.
    Déja je suis en console.

    Ce qu'il doit faire le programme.
    Surveillez les entrées clavier et des que quelq'un appuye sur une touche,
    celle-ci, est stocké dans un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String tbl = new String tbl[255] ;

    Mais je ne sais pas du tout comment faire. quelqu'un peut t'il maider ??

    merci

  2. #2
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    heu je suis tout nouveau en java donc je te dis peut etre des bétises mais moi pour lire des info entré au clavier que je suis en console j'utilise la classe Scanner du jdk1.5.

    code :
    Scanner scan = new Scanner;
    answer = scan.nextLine();

    sans oublié d'importer la classe...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    elle ce trouve ou la classe exactement ?
    et lit elle bien un caractère a la fois ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 28
    Points : 27
    Points
    27
    Par défaut
    Tu peux utiliser la méthode readLine() de BufferedReader sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String tbl = new String tbl[255] ;
    try {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            int i = 0;
            String str = "";
            while (str != null) {
                str = in.readLine();
                tbl[i] = str;
                i++;
            }
    } catch (IOException e) {}
    Mais par contre il faut que après chaque caractères tapés tu tapes sur entrée.

  5. #5
    Membre actif Avatar de keil
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    261
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 261
    Points : 214
    Points
    214
    Par défaut
    utilise JNI
    avec le un pti code en c++

    lis un peu de doc avant sur JNI pcq un char en c++ est codé sur 1 octet alors qu'en java c'est sur 2 octets, il te faudra donc utiliser des outils de jni.h pour palier à ce pb

    et au fait, getche() est dans conio.h donc pas présent avec tous les compilateurs, j'espère que tu auras ton bonheur.
    petite précision, après cela ton code ne sera plus du tout portable
    Colère et Haine mènent à la Puissance

  6. #6
    Membre à l'essai
    Étudiant
    Inscrit en
    Mai 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2004
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    non ça lit tout, mais bon doit y avoir un moyen pour lire caractere par caractere...sinon la classe Scanner se trouve dans java.utils.*
    regarde dans la javadoc

  7. #7
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par keil

    et au fait, getche() est dans conio.h donc pas présent avec tous les compilateurs, j'espère que tu auras ton bonheur.
    petite précision, après cela ton code ne sera plus du tout portable

    Alors pas portable du tout surtout avec "conio" qui n'est pas standard C.
    Bien le bonjour chez vous
    Jowo

  8. #8
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Utilise la classe InputStreamReader que tu map sur l'InputStream System.in :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    InputStreamReader isr = new InputStreamReader(System.in);
    ...
    ...
    isr.close();
    Tu lis un caractère avec la methode read() (Attention, read renvoie un int).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par showlap1
    sinon la classe Scanner se trouve dans java.utils.*
    La classe Scanner n'est disponible que depuis Java 5.0 mais elle ne permet pas de résoudre le problème...


    En Java la gestion du flux d'entré est très limité car il faut agir sur le système lui-même... Si la lecture caractères par caractères "ne marche pas" c'est que le système n'envoit réellement les caractères à l'application que lorsque l'utilisateur a appuyer sur 'Entrée'... Donc qu'elle que soit l'envellope que tu utilisera autour de ton InputStream, tu ne liras les caractères qu'après 'Entrée'...

    Et comme la gestion de la console est très différentes d'un système à l'autre, (le getche() du C / Windows en est la preuve), la gestion des caractères "à la volé" n'a pas été intégré dans Java...



    D'ailleurs il y a une vielle RFE sur le site de Sun pour réclamer cette fonctionnalité : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435
    La Bonne nouvelle c'est que ce "bug" est à l'état fixed c'est à dire que la fonctionnalité a été implémenté... La Mauvaise c'est qu'il faudra attendre Mustang (Java 6.0) pour profiter de System.console()...


    En attendant je te conseille de recherche sur le web... il doit bien y avoir des librairies qui gère déjà cela via JNI...

    a++

Discussions similaires

  1. Entrée clavier / GUI / Console
    Par SebastianPx dans le forum Composants
    Réponses: 18
    Dernier message: 26/09/2011, 12h33
  2. [Débutant] requete entre plusieurs tables
    Par xufux dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 14h00
  3. [Débutant] Console interactive
    Par Onarap dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 22/01/2005, 17h00
  4. [Débutant] communication entre 2 instances
    Par xiao-long974 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 05/06/2004, 12h07
  5. Réponses: 3
    Dernier message: 04/02/2004, 18h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo