2012-02-29 79 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