String#scan のフォーマット指定版といえるメソッド String#scanf を定義します。
require 'scanf'
p "a 10  1.2".            scanf("%s %d %f")   # => ["a", 10, 1.2]
p "a 10  1.2 b 20 1.5e10".scanf("%s %d %f")   # => ["a", 10, 1.2]
p "a 10  1.2 b 20 1.5e10".scanf("%s %d %f") {|*v| v}
                # => [["a", 10, 1.2], ["b", 20, 15000000000.0]]
p "a 10  1.2 b 20 1.5e10 c".scanf("%s %d %f") {|*v| v}
               # => [["a", 10, 1.2], ["b", 20, 15000000000.0], [["c"]]]
                                                     #    [["c"]] (?)
require 'scanf'
p "a, 10, 1.2".scanf("%s,%d,%f")
# => ["a,"]      %s が "," を飲み込むからダメらしい
p "a, 10, 1.2".scanf("%1s,%d,%f")
# => ["a", 10, 1.2]
p "a, 10, 1.2".scanf("%[^,],%d,%f")
# => ["a", 10, 1.2]
| Scanf::FormatSpecifier | |
| Scanf::FormatString | 
| Scanf | scanf ライブラリで使用する名前空間です。  |