APIdock / Ruby
/
method

gets

ruby latest stable - Class: IO
gets(*args)
public

Reads the next "line" from the I/O stream; lines are separated by sep. A separator of nil reads the entire contents, and a zero-length separator reads the input a paragraph at a time (two successive newlines in the input separate paragraphs). The stream must be opened for reading or an IOError will be raised. The line read in will be returned and also assigned to $_. Returns nil if called at end of file. If the first argument is an integer, or optional second argument is given, the returning string would not be longer than the given value in bytes.

File .new ("testfile").gets  #=> "This is line one\n"
$_ #=> "This is line one\n"
File .new ("testfile").gets (4)#=> "This"

If IO contains multibyte characters byte then gets(1) returns character entirely:

# Russian characters take 2 bytes
File .write ("testfile", "\u{442 435 441 442}")
File .open ("testfile") {|f|f.gets (1)} #=> "\u0442"
File .open ("testfile") {|f|f.gets (2)} #=> "\u0442"
File .open ("testfile") {|f|f.gets (3)} #=> "\u0442\u0435"
File .open ("testfile") {|f|f.gets (4)} #=> "\u0442\u0435"
static VALUE
rb_io_gets_m(int argc, VALUE *argv, VALUE io)
{
 VALUE str;
 str = rb_io_getline(argc, argv, io);
 rb_lastline_set(str);
 return str;
}

1Note

Argument Accepted

nhance · Jan 19, 20102 thanks

Accepts a single argument sep_string

AltStyle によって変換されたページ (->オリジナル) /