mirror of
https://github.com/ruby/ruby.git
synced 2026-01-27 04:24:23 +00:00
(https://github.com/ruby/stringio/pull/189) https://github.com/ruby/stringio/commit/e3d16d30ed
35 lines
1.0 KiB
Plaintext
35 lines
1.0 KiB
Plaintext
Reads and returns the next character (or byte; see below) from the stream:
|
||
|
||
strio = StringIO.new('foo')
|
||
strio.getc # => "f"
|
||
strio.getc # => "o"
|
||
strio.getc # => "o"
|
||
|
||
Returns +nil+ if at end-of-stream:
|
||
|
||
strio.eof? # => true
|
||
strio.getc # => nil
|
||
|
||
Returns characters, not bytes:
|
||
|
||
strio = StringIO.new('Привет')
|
||
strio.getc # => "П"
|
||
strio.getc # => "р"
|
||
|
||
strio = StringIO.new('こんにちは')
|
||
strio.getc # => "こ"
|
||
strio.getc # => "ん"
|
||
|
||
In each of the examples above, the stream is positioned at the beginning of a character;
|
||
in other cases that need not be true:
|
||
|
||
strio = StringIO.new('こんにちは') # Five 3-byte characters.
|
||
strio.pos = 3 # => 3 # At beginning of second character; returns character.
|
||
strio.getc # => "ん"
|
||
strio.pos = 4 # => 4 # At second byte of second character; returns byte.
|
||
strio.getc # => "\x82"
|
||
strio.pos = 5 # => 5 # At third byte of second character; returns byte.
|
||
strio.getc # => "\x93"
|
||
|
||
Related: #getbyte, #putc, #ungetc.
|