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

avec Java Discussion :

Scanner, méthode hasNext() - fin d'entrée par CTRL D sous mac ?


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Hobby
    Inscrit en
    Août 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Août 2002
    Messages : 125
    Points : 82
    Points
    82
    Par défaut Scanner, méthode hasNext() - fin d'entrée par CTRL D sous mac ?
    Bonjour à tous,


    Je suis confronté à un problème de fin d’entrée sur la classe Scanner, méthode hasNext().
    Le code (recopié d’un livre), est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static void main(String[] args)
       {
          openFile();
          addRecords();
          closeFile();
       }
    (Les parties inutiles pour ce post sont omises)

    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
     
     
    public static void addRecords()
       {
          Scanner input = new Scanner(System.in);
          System.out.printf("%s%n%s%n? ", 
             "Enter account number, first name, last name and balance.",
             "Enter end-of-file indicator to end input.");
     
     
          while (input.hasNext()) 
          {
             try
             {
                // output new record to file; assumes valid input
                output.format("%d %s %s %.2f%n", input.nextInt(),
                   input.next(), input.next(), input.nextDouble());                             
             } 
             catch (FormatterClosedException formatterClosedException)
             {
                System.err.println("Error writing to file. Terminating.");
                break;
             } 
             catch (NoSuchElementException elementException)
             {
                System.err.println("Invalid input. Please try again.");
                input.nextLine(); 
             } 
     
     
             System.out.print("? ");
          }

    Le problème est que le programme ne lance jamais la méthode closeFile() parce que la détection de fin d’entrée
    while (input.hasNext()) de la méthode addRecords()
    ne reçoit pas la valeur attendue.

    Etant sous Mac, j’ai essayé les informations trouvées sur le web, à savoir :
    crtl d
    ctrl q suivi de crtl d

    Rien ne fonctionne.

    Quelle est la combinaison de touches pour réaliser, sous Mac, l'équivalent d'un CTRL-Z de Windows ?

    Merci pour votre aide.
    Cordialement.

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Tu pourrai aussi faire une détection d'une commande de fin, qui serai selon moi un peu plus propre.
    Et indépendant du système d’exploitation sur lequel ton application va se trouver.
    Tu pourrai matcher un "close" ou un "stop" et faire un break; dans ce cas là.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre régulier
    Homme Profil pro
    Hobby
    Inscrit en
    Août 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Août 2002
    Messages : 125
    Points : 82
    Points
    82
    Par défaut
    Merci pour la réponse.
    L'idée est en effet excellente en ce qui concerne la compatibilité des différents OS.

    Toutefois, je ne comprends pas pourquoi le <commande d> du clavier MAC ne valide pas la condition de fin.

    Cordialement.

Discussions similaires

  1. requête access (test d'une valeur entrée par l'utilisateur)
    Par ben5985 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 30/11/2006, 08h39
  2. récupérer un text entré par l'utilisateur
    Par jayjay.f dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 15/11/2006, 09h24
  3. Garder en mémoire les valeurs entrées par l'utilisateur
    Par dessinateurttuyen dans le forum Langage
    Réponses: 11
    Dernier message: 17/08/2006, 09h15
  4. désactiver l'effet de la touche entrée par le code
    Par shumira dans le forum Access
    Réponses: 2
    Dernier message: 05/01/2006, 11h38
  5. Réponses: 5
    Dernier message: 27/09/2005, 17h25

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