2013-12-21 3 views
0

Я использую Eclipse, чтобы выполнить следующую простую программу (тестовый сканер) входы указаны в конфигурации Run -> Аргументы в разделеDebug - проблема чтения сканер ввода

23 98 

Программа не прекращает - зависает без продувки a + b

import java.io.*; 
import java.util.*; 

public class InputExpt 
{ 
    public static void main(String[] args) 
    { 
     Scanner in = new Scanner(System.in); 
     //PrintWriter out = new PrintWriter(System.out); 

     int a = in.nextInt(); 
     int b = in.nextInt(); 
     in.close(); 
     System.out.println(a+b); 
    } 
} 

Программа работает, когда я не использую утилиту Scanner для чтения входов. Использование линий под дисплеями 121 (a + b)

 int a = Integer.parseInt(args[0]); // in.nextInt(); 
    int b = Integer.parseInt(args[1]); //in.nextInt(); 

В чем проблема?

ответ

2

Существует разница между вводами программ и аргументами программы.

Когда вы кладете аргументы конфигурации запуска, Eclipse добавляет их к java пускового

java InputExpt 23 98 

Для вас, чтобы получить консольный ввод, вы бы запустить и ввести номера (нажав возврат каретки, когда вы закончите ввод то, что вы необходимо)

> java InputExpt 
> 23 98 
> 

аргументы программы связаны в качестве элементов в массиве args во время ввода программы в потоковом во входном потоке процесса Java, которые вы можете получить через System.in.

1

1) Scanner in = new Scanner(System.in);

приведенный выше код будет читать из STDIN и вы передаете данные, используя аргументы командной строки

2)

int a = Integer.parseInt(args[0]); // in.nextInt(); 
int b = Integer.parseInt(args[1]); //in.nextInt(); 

код выше работает, как вы прошли данные, используя cmd-args

Смежные вопросы