each_char()
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.
f = File.new("testfile") f.each_char {|c| print c, ' ' } #=> #<File:testfile>
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_readable(fptr); enc = io_input_encoding(fptr); READ_CHECK(fptr); while (!NIL_P(c = io_getc(fptr, enc))) { rb_yield(c); } return io; }