Ruby等价于C++istream运算符



使用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

谢谢你的帮助!

我不知道有哪个运算符可以这样工作,所以我会这样做,不是最好的答案,但仍然是一个。

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

相关内容

最新更新