End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
IO#each_char
ios.each_char {|c| block } → ios
ios.each_char → an_enumerator
io.c
View on GitHub ↗
static VALUE
rb_io_each_char(VALUE io)
{
rb_io_t *fptr;
rb_encoding *enc;
VALUE c;
RETURN_ENUMERATOR(io, 0, 0);
GetOpenFile(io, fptr);
rb_io_check_char_readable(fptr);
enc = io_input_encoding(fptr);
READ_CHECK(fptr);
while (!NIL_P(c = io_getc(fptr, enc))) {
rb_yield(c);
}
return io;
}
Calls the given block once for each character in ios, passing the character as an argument. The stream must be opened for reading or an IOError will be raised.
If no block is given, an enumerator is returned instead.
Example
f = File.new("testfile") f.each_char {|c| print c, ' ' } #=> #<File:testfile>