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

Langage Java Discussion :

Classe clavier problème avec char


Sujet :

Langage Java

  1. #1
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut Classe clavier problème avec char
    Bonjour, j'ai créer un petit programme tout simple. Le problème est que j'utilise la classe Clavier pour la saisie des nombres :
    Seulement, j'aimerais dans mon programme, pouvoir lire un caractère de type char mais je n'y arrive pas. Existe-t-il une méthode pour pouvoir lire des variables de type char avec la classe Clavier. Je programme sous eclipse avec Windows.
    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Cette classe ne fais pas partie des librairies standards
    Difficile de t'aider a moins que tu nous montre cette classe ou
    que nous te fournissions une autre classe

  3. #3
    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 778
    Points
    5 778
    Par défaut
    Comme l'a dit Alwin, tu n'es pas très clair sur ce que tu veus. Cependant, peut-être cela s'approche-t-il de la classe Scanner (depuis Java 5) ?

  4. #4
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Ah je pensais que cette classe était standard désolé oui je peux vous la montrez bien sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    // classe fournissant des fonctions de lecture au clavier -
    import java.io.* ;
    public class Clavier
    { public static String lireString ()   // lecture d'une chaine
      { String ligne_lue = null ;
        try
        { InputStreamReader lecteur = new InputStreamReader (System.in) ;
          BufferedReader entree = new BufferedReader (lecteur) ;
          ligne_lue = entree.readLine() ;
        }
        catch (IOException err)
        { System.exit(0) ;
        }
        return ligne_lue ;
      }
      public static float lireFloat ()   // lecture d'un float
      { float x=0 ;   // valeur a lire
        try
        { String ligne_lue = lireString() ;
          x = Float.parseFloat(ligne_lue) ;
        }
        catch (NumberFormatException err)
        { System.out.println ("*** Erreur de donnee ***") ;
          System.exit(0) ;
        }
        return x ;
      }
      public static double lireDouble ()   // lecture d'un double
      { double x=0 ;   // valeur a lire
        try
        { String ligne_lue = lireString() ;
          x = Double.parseDouble(ligne_lue) ;
        }
        catch (NumberFormatException err)
        { System.out.println ("*** Erreur de donnee ***") ;
          System.exit(0) ;
        }
        return x ;
      }
      public static int lireInt ()         // lecture d'un int
      { int n=0 ;   // valeur a lire
        try
        { String ligne_lue = lireString() ;
          n = Integer.parseInt(ligne_lue) ;
          }
        catch (NumberFormatException err)
        { System.out.println ("*** Erreur de donnee ***") ;
          System.exit(0) ;
        }
        return n ;
      }
     
       // programme de test de la classe Clavier
      public static void main (String[] args)
      { System.out.println ("donnez un flottant") ;
        float x ;
        x = Clavier.lireFloat() ;
        System.out.println ("merci pour " + x) ;
        System.out.println ("donnez un entier") ;
        int n  ;
        n = Clavier.lireInt() ;
        System.out.println ("merci pour " + n) ;
      }
    }
    Quelle est la classe standard permettant de lire des caractères au clavier?

  5. #5
    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 778
    Points
    5 778
    Par défaut
    Citation Envoyé par benjiprog
    Quelle est la classe standard permettant de lire des caractères au clavier?
    As-tu lu mon post précédent ? ou bien la FAQ : Comment lire des informations sur l'entrée standard ?

  6. #6
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    As-tu lu mon post précédent ?
    Oui mais je ne savais pas que c'était la classe standard.

  7. #7
    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 778
    Points
    5 778
    Par défaut
    Pense au tag

  8. #8
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Oui, mais enfin d'après ce que j'ai vu de cette classe je ne vois pas trop comment ca fonctionne par exemple je voit pas comment saisir un caractère avec cette classe. Apparement au début il faut déclarer un emplcement mémoire avec new. J'ai moyennement compris, surtout la syntaxe à adopter.

  9. #9
    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 778
    Points
    5 778
    Par défaut
    Tu dois d'abord instancier la classe Scanner en indiquant sur quel flux tu veus lire (pour l'entrée standard : System.in)
    Ensuite tu lis ce que tu veus via les diverses méthodes de la classe Scanner.
    Par exemple pour lire un float :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Scanner scanner = new Scanner(System.in);  // instanciation d'un Scanner qui lit l'entrée standard
    float f = scanner.nextFloat();  // lecture d'un float
    scanner.close();  // fermeture du scanner

  10. #10
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    J'ai donc réaliser un petit programme afin de tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	int nb;
    	Scanner sc = new Scanner (System.in);
     
    	System.out.print("Entrez un nombre :");
    	nb=sc.nextInt();
    	System.out.println("Vous avez taper le nombre "+nb);
    Mais il y a une erreur qui se trouve a la 2ème ligne du programme :
    Exception in thread "main" java.lang.Error: Unresolved compilation problems: Scanner cannot be resolved to a type
    J'ai bien entendu intégrer la classe Scanner dans mon projet voici le code de la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /** Classe permettant d’utiliser la fonction Scanner **/
    import java.util.Scanner;
    public class SaisieClavier
    {
    public static void main (String [] args){
    /**Récupération et affichage d’une chaine de caractere**/
    /** Declaration d’un nouvel objet Scanner **/  
    System.out.println("Entrez votre nom :");
    Scanner input_name = new Scanner(System.in);
    /** Recuperation de la chaine de caractère **/
    String nom = input_name.nextLine();
    System.out.println("Bonjour " + nom);
    /**Récupération et affichage d’un entier**/
    Donc je ne comprend pas pourquoi cela ne marche pas.

  11. #11
    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 778
    Points
    5 778
    Par défaut
    Quelle est version de ton jdk ? la classe Scanner n'est disponible que depuis Java 5.
    Pour connaitre la version de ton compilateur tape la ligne de commande suivante : La première ligne de ce qui s'affiche doit ressembler à ça :
    javac 1.5.0_07
    La partie importante est le deuxième chiffre qui doit être supérieur ou égal à 5.

    Si tu as une version inférieur tu peut télécharger le JDK 5.0 Update 7 ici (deuxième download normalement).

  12. #12
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Oui j'ai le JDK 1.5.0_06 donc normalement ca devrait être bon.

  13. #13
    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 778
    Points
    5 778
    Par défaut
    Là j'avoue que je vois pas trop. A quelle ligne se situe l'erreur ? sinon post tout ton code et le message d'erreur complet.

  14. #14
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    D'accord donc voici mon code de programme que j'ai créer pour tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Saisienbre {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int nb;
    		Scanner sc = new Scanner(System.in);
     
    		System.out.print("Entrez un nombre :");
    		nb=sc.nextInt();
    		System.out.println("Vous avez taper le nombre "+nb);
    	}
     
    }
    L'erreur se situe a la ligne : Scanner sc = new Scanner(System.in);


    Ensuite la classe Scanner que j'ai telecharger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    /** Classe permettant d’utiliser la fonction Scanner **/
    import java.util.Scanner;
    public class SaisieClavier
    {
    public static void main (String [] args){
    /**Récupération et affichage d’une chaine de caractere**/
    /** Declaration d’un nouvel objet Scanner **/  
    System.out.println("Entrez votre nom :");
    Scanner input_name = new Scanner(System.in);
    /** Recuperation de la chaine de caractère **/
    String nom = input_name.nextLine();
    System.out.println("Bonjour " + nom);
    }
    }
    /**Récupération et affichage d’un entier**/
    Puis le messages d'erreur complet :
    Exception in thread "main" java.lang.Error: Unresolved compilation problems:
    Scanner cannot be resolved to a type
    Scanner cannot be resolved to a type

    at Saisienbre.main(Saisienbre.java:7)

  15. #15
    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 778
    Points
    5 778
    Par défaut
    Pourquoi as-tu deux classes (Saisienbre et SaisieClavier) qui font la même chose ?
    Dans ta classe Saisienbre il manque l'import, et il manque deux } (à la fin) à ta classe SaisieClavier.

  16. #16
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Le problème est effectivement comme tu l'as dit qu'il manquait l'import dans mon fichier Saisie ou il y a ma classe Saisienbre, je ne l'avais pas mis car je l'avais déjà omis quand je réalisait mes programmes avec la classe Clavier et cela marchait.
    Juste une dernière chose connaitrais-tu un endroit ou il parle un peu des possibilités que l'on peut faire avec cette classe Scanner (en français si possible ).
    Je te remerci.

  17. #17
    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 778
    Points
    5 778
    Par défaut
    Je t'ai plusieurs fois mis en lien la javadoc de la classe Scanner. Par contre c'est en anglais et il n'y a malheureusement pas de traduction française (mais si tu lis un peu l'anglais ça drevrait aller). Sinon tu as toujours google pour chercher .

  18. #18
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    J'ai trouver une doc en français qui est pas mal du tout sur cette fameuse classe Scanner si quelqun est interesser cliquer ici.
    Par contre si quelqun connait une commande qui permet de ne pas fermer la fenêtre DOS tout de suite après le dernier affichage n'hésiter pas a poster .

  19. #19
    Membre habitué Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Points : 148
    Points
    148
    Par défaut
    En C# il suffisait de pauser le programme en fesant un Console.ReadLine(); donc avec les scanners j'imagine que c'est sc.nextLine() ou si tu veux t'amuser il y a toujours nos amies les boucles infinies tel que : while (true) {} ^^

  20. #20
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    J'avais pensé à la méthode NextLine, malheuresement cela ne change rien le programme se ferme, par contre la méthode next marche seulement il faut taper une lettre ou un nombre ou n'importe quel caractère que ce soit et appuyer sur entrer pour sortir. De plus, je n'arrive pas à lire une variable de type char avec Scanner.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Détection touches clavier : problème avec 'Alt_L'
    Par sancho.poncho dans le forum Général Python
    Réponses: 8
    Dernier message: 03/05/2013, 22h29
  2. Raccourcis clavier - Problème avec SCIM
    Par YannBubuntu dans le forum Bubuntu
    Réponses: 3
    Dernier message: 19/06/2008, 06h50
  3. Problème avec char
    Par choupinette116 dans le forum Débuter
    Réponses: 7
    Dernier message: 23/04/2008, 10h30
  4. Réponses: 22
    Dernier message: 05/07/2005, 00h04
  5. Réponses: 6
    Dernier message: 17/04/2005, 10h58

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