try
        {
           char c;           
           do
           {
                System.out.println("输入一个字符,#号键结束");
                c=(char)System.in.read();
                System.in.skip(2);//忽略回车换行
                System.out.println((int)c);             
            }while(c!='#');  
        }catch(Exception e){}
结果输出两遍,一个是C的ASII码,另一个是另一个数字。为什么?我只想它输出C的ASII码~不想输出别的。

解决方案 »

  1.   

      我试了你的代码 ... 只输出了1个 ...--------------------Configuration: <Default>--------------------
    输入一个字符,#号键结束
    c
    99
    输入一个字符,#号键结束
      

  2.   

    另一个就是'#'了。---------------------
    websharp, 最好最简单的web技术. http://blog.csdn.net/coolmasoft 
      

  3.   

    (char)System.in.read();
    这东西不是很好用bufferReader这类吧
    你这样是造成了二次循环了
      

  4.   

    import java.io.*;
    public class Test1{
    public static void main(String args[]){
        try
            {
               char c;
               System.out.println("输入一个字符,#号键结束");
               while((c=(char)System.in.read())!='#')
               {
                    //System.out.println("输入一个字符,#号键结束");
                    //c=(char)System.in.read();
                    System.in.skip(2);//忽略回车换行
                    System.out.println((int)c);
                    System.out.println("输入一个字符,#号键结束");
                }
            }catch(Exception e){}
        }
    }
    这样子可以,但我感觉好像有点烦琐哦,哈哈
      

  5.   

    用do while 循环的过!!用 while 就一个了
      

  6.   

    do while是先执行程序一次后再判断条件是否成立.
      

  7.   


    这是我的结果:在NETBEANS在执行的。就是每次都输出10.
    compile:
    run:
    输入一个字符,#号键结束
    c
    99
    输入一个字符,#号键结束
    10
    输入一个字符,#号键结束
    d
    100
    输入一个字符,#号键结束
    10
    输入一个字符,#号键结束