2015-09-30 77 views
0

有人可以向我解釋這種方法,爲什麼這是返回char,而不是int方法返回字符與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's。

As in JLS says

甲基本收縮轉換可以用於如果變量的類型是字節,短,或炭和常量表達式的值在變量的類型表示的。

,以便在my previous answeryour previous question,必須將它轉換或者改變返回類型,因爲:

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

char c = 'A'; 
c = c++;