はじめまして、野村@延岡と言います。

String からではなく、ストリームから直接トークンを取りだす関数が
あると便利ではないでしょうか? 例えば

a = $stdin.splitf

b = $stdin.scanf(/ .... /)

のような感じです。取りだすトークンは一回の呼出しで一個です。
ストリームが終ると nil を返します。

$line = []
def scanf
  $line = []
  if $line == []
    l = gets
    return nil if l == nil
    $line = l.shift
  end
  $line.shift
end

のような感じです。 

野村朝清 tnomura / mnet.ne.jp