程序在for语句下用System.in.read()连续输入10个字符,再输出:public class chars
{
public static void main(String []args)
    {
          int max=10;
          char m[]=new char[max];
         
          System.out.println("输入10个字符:");
          for(int i=0;i<max;++i)
          {
               
               System.out.print("第"+(i+1)+"个字符:");
               
               try{
                     m[i]=(char)System.in.read();
                  
                  }catch(Exception e){ };
                  
           }
           for(int i=0;i<max;++i)
           {
             System.out.println(m[i]);
           }
    }
}
运行时:在  "第1个字符:"   屏幕提示后输入字符按回车,随即连续显示"第2个字符:第3个字符:第4个字符:"的屏幕提示,
再输字符也是如此;
按理说在相应的屏幕提示下逐个输入10个字符。当程序改为只输入两个字符即:
               
              System.out.print("输入第1个字符:");
              try{
                     a=(char)System.in.read();
                  
                  }catch(Exception e){ }; 
              System.out.print("输入第2个字符:");
              try{
                     b=(char)System.in.read();
                  
                  }catch(Exception e){ };  输入完第1个字符按回车,显示完 "输入第2个字符:"  后程序马上结束。请问如何解决以上System.in.read()输入的错误,请高手指教!!!!我原本想构造一个复数类,可实现加减乘除运算,在for语句下用System.in.read()输入10个复数(实部和虚部),
所以用以上例子来解决System.in.read()输入问题。

解决方案 »

  1.   

    楼主的程序这样改一下
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    public class chars
    {
    public static void main(String []args)
        {
              int max=10;
              byte m[]=new byte[max];
             
     InputStreamReader in = new InputStreamReader(System.in);
    BufferedReader dr = new BufferedReader(in);          System.out.println("输入10个字符:");
              for(int i=0;i<max;++i)
              {
                   
                   System.out.print("第"+(i+1)+"个字符:");
                   
                   try{
                         m[i]=Byte.valueOf(dr.readLine());
                      
                      }catch(Exception e){ };
                      
               }
               for(int i=0;i<max;++i)
               {
                 System.out.println(m[i]);
               }
        }
    }
      

  2.   

    建议楼主看看这篇文章
    文件和流:
    http://www.zhuoda.org/irini/38290.html
      

  3.   

    for(int i=0;i<max;++i)
    {
    System.out.println((char)System.in.read());
    }
    }