Ruby相当于C ++ istream运算符?

时间:2012-02-29 07:24:03

标签: ruby

使用Ruby,我想从STDIN一次一个地读取和操作整数。有多行空格分隔整数:

3 67 41 20
6 21 433 25 1 6
5 2 3 5

在C ++中,istream::operator>>会自动跳过空格,无论是空格还是换行符,并连续读取所有整数:

cin >> val;
foo(val);

在Ruby中,我能找到的最好的就是它,它会在一行的末尾被捕获:

val = gets(' ')

我也尝试了scanf.rb,但这似乎只读取了一个整数,然后丢弃了其余部分:

require 'scanf.rb'
N.times do
  p scanf("%d")
end

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我知道没有那种方式的运算符,所以我会这样做,不是最好的答案,但仍然是。

result=[]
while input = gets do
  input.split(' ').each do |value|
    result << value.chomp
  end
end