2015-09-30 3 views
0

Может кто-нибудь объяснить этот метод мне и почему это возвращает char вместо int ??метод, который возвращает char с int

public static int fgetc(InputStream stream) 
{ 
    char ToRet = '\0'; 
    if (InStream.isEmpty()) 
    { 
     try 
     { 
       ToRet = (char) stream.read(); 
       if (ToRet == CR) 
        Toret = (char) stream.read(); 
       if ((int) ToRet == 0xFFFF) 
        return EOF; 
     } 
     catch (EOFException eof) 
     { 
       return EOF; 
     } 
     catch (IOException ioe) 
     { 
       writeline ("Unexpected IO Exception caught!\n", System.out); 
       writeline (ioe.toString(),System.out); 
     } 
    } 
    else 
      ToRet = ((MYLibCharacter) Instream.pop()).charValue(); 
return ToRet; 
} 

и позволяет сказать, что вы хотите сохранить значение, вводимые пользователем в качестве символа до символа новой строки обнаруживается,

int index = 0; 
while (message[index] != '\n\) 
{ 
    message[index] = fgetc(System.in); 
    index++; 
} 

почему это не так ?? Любые советы и помощь будут высоко оценены.

жаль, что это может быть немного грязно, не стесняйтесь редактировать или задавать мне какие-либо вопросы относительно этого сообщения.

+0

Этот метод возвращающий 'int'. – Raedwald

ответ

4

char (и другие примитивные типы) в Java похожи на int.

As in JLS says

сужению примитивные преобразования может быть использован, если тип переменной является байт, короткие, или символ, а значение константы выражения представима в типе переменной.

Так как в my previous answer к your previous question, вы должны бросить его или изменить тип возвращаемого значения, потому что:

char c = 'A' + 1; 
char c = 45; 

или

char c = 'A'; 
c = c++; 
Смежные вопросы