调试 - 读取扫描仪输入问题



我正在使用Eclipse运行以下简单程序(测试扫描程序)输入在运行配置 -> 参数部分中提到为

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);
   }
}

当我不使用扫描仪实用程序读取输入时,该程序可以工作。使用下面的行显示 121(a+b)

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

这里的问题是什么?

程序输入和程序参数之间存在差异。

当您放置运行配置参数时,Eclipse 会将它们添加到java启动器

java InputExpt 23 98

为了获得控制台输入,您将运行并输入数字(输入完所需内容后按回车键)

> java InputExpt
> 23 98
>

程序参数作为元素绑定到 args 数组,而程序输入在 java 进程输入流中流式传输,您可以通过 System.in 获取。

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 传递数据时工作

最新更新