2017-02-21 4 views
0

私の質問は - .getcは一度に1文字しか読み込まないのに対し、$stdin.readはメモリ内の入力文字列を一度に読み込むという前提があります。

これは間違っていますか?

IO#read

答えて

0

は、I/Oストリームからlengthバイトを読み取り。

長さは、負の整数またはnilでなければなりません。

は正の整数である場合、それは任意の変換(バイナリモード) なしバイトを読み取ろう。 nilまたはの長さが の文字列が1からの長さがバイトの文字列を返します。 nilは初めにEOFに達したことを意味します。 1〜 のlength-1バイトの文字列は、結果を読み取った後にEOFに一致したことを示します。 長さバイト文字列は、EOFを満たしていないことを意味します。結果の文字列は、常に ASCII-8BITエンコーディングです。

を省略又はnilである場合EOF符号化 変換が適用されるまで、それが読み取ります。 EOFが から始まっても文字列を返します。

の長さがの場合、""を返します。

オプションのoutbuf引数が存在する場合は、データを受け取る 文字列を参照する必要があります。 outbufには 開始時に空でない場合でも、メソッド呼び出し後に受信データが にのみ含まれます。

ファイルの最後には、nilまたは""の長さに依存します。 ios.read()および ios.read(nil)は、""を返します。 ios.read(positive-integer)nilを返します。

IO#getc

は、iOSから1文字の文字列を読み込みます。 ファイルの最後に呼び出された場合はnilを返します。