因为从命令行读入的是ASCLL码,转化为int后故不是你看到的,
可以用p = Integer.parseInt(System.in.read());转化为int类型。

解决方案 »

  1.   

    int p = Integer.parseInt((new BufferedReader(new InputStreamReader(System.in))).readLine());用这个可能更好。
      

  2.   

    to  jorneyR(胡言乱语不怕死的菜鸟) :
    不对哦,Integer.parseInt(System.in.read())?????
    System.in.read()返回的是一个整型数,以下是编译器报的错误:
    cannot resolve symbol
    symbol  : method parseInt (int)
    location: class java.lang.Integer
             p = Integer.parseInt(System.in.read());
    to tangzhu0619(凰翌) 像你那样做是正确的,可是为什么以下程序不行呢?           DataInputStream dis = new DataInputStream(System.in);
     System.out.println("input p:");
     p = dis.readInt();
     System.out.println("p= "+p);
                        System.out.println("input q:");
     q = dis.readInt();
     System.out.println("q= "+q);
        为什么你用BufferedReader包装System.in可以,而用DataInputStream包装System.in就不行呢?
    呵呵,值得研究哦!
    感激楼上几位兄弟,有待继续讨论!