2012-02-29 81 views
0

使用Ruby,我想从STDIN一次一个地读取和操作整数。有空格隔开的整数的多行:红宝石相当于C++ istream运算符吗?

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 

感谢您的任何帮助!

回答

0

我不知道运营商是这样工作的,所以我会那样做,不是最好的答案,但依然之一。

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