java中用户的基本读取输入

时间:2015-09-30 08:43:38

标签: java input system.in

我想阅读一个字符并将其存储到char[]数组中,这是我的方法getaline

public static int getaline(char message[], int maxlength)
{
     int index = 0;
     while (message[index] != '\n')
     {
         message[index] = fgetc(System.out);
         index++;
     }
     index++;
}

和我的fgetc方法:

public static int fgetc(InputStream stream)

并且此方法应该从输入流返回一个字符。

但是我在编译时不断收到错误消息:

  

错误:可能损失精度

message[index] = fgetc(System.in);
                       ^
required: char

found:    int

我应该在fgetc内放置什么才能收集用户的输入?

1 个答案:

答案 0 :(得分:5)

您的代码需要char,但您在此处返回int

public static int fgetc(InputStream stream)
//            ↑ tells method will return an int

你可以

  • 更改方法签名以返回char

    public static char fgetc(InputStream stream)
    //            ↑ tells method will return a char
    
  • 将返回值转换为char

      

    转换§5.5)会将表达式的类型转换为由强制转换运算符(§15.16)显式指定的类型。

    message[index] = (char) fgetc(System.in);
    //               ↑ cast returning value to a char