2017-10-15 41 views
-2

J'essaie de lire une liste d'entiers positifs et négatifs à partir d'un fichier et de les stocker dans un tableau à l'aide d'un scanner. Le problème est qu'il ne lit pas les valeurs négatives. Voici l'entrée:Java, lecture signée et non signée du fichier

7 4 5 8 2 4 7 5 0 8 2 3 9 23 48 -12 49 

Voici le code que j'ai maintenant:

try { 
     Scanner input= new Scanner(new File(args[0])); 
     key = input.nextInt(); 
     while(input.hasNextInt()) 
     { 
      nums[count] = input.nextInt(); 
      count++; 
     } 
     input.close(); 

    } catch (FileNotFoundException e) { 
     System.out.println("No file \""+args[0]+"\" found!"); 
    } 

Le problème est qu'il se ferme sur la première valeur négative.

+0

J'ai réduit cette question car il n'y a aucune preuve de débogage effectué sur ce code. S'il vous plaît [modifier] votre question pour nous montrer ce que votre débogage a découvert, ainsi qu'une question spécifique sur une ligne de code spécifique. Voir: [Comment créer un exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve) et [Comment déboguer de petits programmes] (https://ericlippert.com/2014/03/05/how-to-debug-petits-programmes /). –

+0

Bienvenue dans Stack Overflow! S'il vous plaît lisez sur [Comment poser une bonne question] (https://stackoverflow.com/help/how-to-ask). Votre question doit être spécifique et votre code pertinent doit être [minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve). –

Répondre

2

Il semble y avoir un - supplémentaire caché avec un caractère d'échappement dans votre fichier. Si vous collez la ligne que vous avez donné dans un éditeur qui les rend, vous obtenez:

7 4 5 8 2 4 7 5 0 8 2 3 9 23 48 --12 49

--12 n'est évidemment pas un nombre entier correct à lire.

+0

Wow! Bonne trouvaille! – Seelenvirtuose

+0

Désolé, ce n'est pas là dans le vrai fichier d'entrée. – user6950289

+0

@ user6950289 c'est, c'est tout simplement pas visible. Essayez de tout enlever entre les 48 et 12 et remplacez-le par un simple '-'. –