2017-02-21 43 views
0

我的問題是 - 我有一個假設,$stdin.read一次加載整個輸入字符串,而.getc一次只加載一個字符。

這是正確的,我不確定?

回答

0

IO#read

從I/O流中讀取長度字節。

長度必須是非負整數或nil

如果長度是一個正整數,它會嘗試讀取長度字節而不進行任何 轉換(二進制模式)。它返回nil或其長度爲的字符串 是1到長度字節。零表示它在開始時遇到EOF。長度爲1到 的字符串表示在讀取結果後它符合EOF。 長度字節字符串表示它不符合EOF。結果字符串爲 始終爲ASCII-8BIT編碼。

如果長度被省略或者是nil,它將讀取直到EOF和編碼 轉換被應用。即使EOF在 開頭遇到,它也會返回一個字符串。

如果長度爲爲零,則返回""

如果可選的outbuf參數存在,它必須引用一個 字符串,它將接收數據。在方法調用後,outbuf將僅包含接收的數據,即使它在 開始時不爲空。

在文件末尾,它返回nil""取決於長度ios.read()ios.read(nil)返回""ios.read(positive-integer)返回nil

IO#getc

讀取從IOS一個字符的字符串。如果在 文件末尾調用,則返回nil。

相關問題