NoMethodError: undefined method `scanf' for main:Object

Hi,

I'm trying to use scanf(), but no luck:

$ ruby --version
ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
$ uname -a
Linux zrbite 2.6.21-2-686 #1 SMP Wed Jul 11 03:53:02 UTC 2007 i686 GNU/
Linux
$ irb
irb(main):001:0> w=scanf("%s")
NoMethodError: undefined method `scanf' for main:Object
        from (irb):1
irb(main):002:0>

Trying to call $stdin.scanf() does not help either (NoMethodError).
What I'm missing?

Cheers,
Alex

Alex Shulgin wrote:

Hi,

Hi.

Trying to call $stdin.scanf() does not help either (NoMethodError).
What I'm missing?

I don't know, but the ri docs sure are sparse for ruby 1.8.6 (2007-03-13):

  $ ri scanf
  More than one method matched your request. You can refine
  your search by asking for information on one of:

       IO#block_scanf, IO#scanf, Kernel#scanf, String#block_scanf,
       String#scanf

  $ ri Kernel.scanf
  ----------------------------------------------------------- Kernel#scanf
       scanf(fs,&b)

···

------------------------------------------------------------------------
       (no description...)

But the original project examples at

  scanf for Ruby, v.1.1.1

might get you going...

Regards,
--
Bil Kleb
http://nasarb.rubyforge.org

Hi --

Hi,

I'm trying to use scanf(), but no luck:

$ ruby --version
ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
$ uname -a
Linux zrbite 2.6.21-2-686 #1 SMP Wed Jul 11 03:53:02 UTC 2007 i686 GNU/
Linux
$ irb
irb(main):001:0> w=scanf("%s")
NoMethodError: undefined method `scanf' for main:Object
       from (irb):1
irb(main):002:0>

Trying to call $stdin.scanf() does not help either (NoMethodError).
What I'm missing?

You have to require it:

irb(main):001:0> require 'scanf'
=> true
irb(main):002:0> a = scanf("%s")
abc
=> ["abc"]
irb(main):003:0> a
=> ["abc"]

David

···

On Sun, 16 Sep 2007, Alex Shulgin wrote:

--
* Books:
   RAILS ROUTING (new! http://www.awprofessional.com/title/0321509242\)
   RUBY FOR RAILS (http://www.manning.com/black\)
* Ruby/Rails training
     & consulting: Ruby Power and Light, LLC (http://www.rubypal.com)

Hi --

Alex Shulgin wrote:

Hi,

Hi.

Trying to call $stdin.scanf() does not help either (NoMethodError).
What I'm missing?

I don't know, but the ri docs sure are sparse for ruby 1.8.6 (2007-03-13):

$ ri scanf
More than one method matched your request. You can refine
your search by asking for information on one of:

     IO#block_scanf, IO#scanf, Kernel#scanf, String#block_scanf,
     String#scanf

$ ri Kernel.scanf
----------------------------------------------------------- Kernel#scanf
     scanf(fs,&b)
------------------------------------------------------------------------
     (no description...)

But the original project examples at

http://www.rubyhacker.com/code/scanf/

might get you going...

That version is obsolete; it's best to use the one that ships with
Ruby. You have to require it, though -- it's standard library rather
than core.

   require 'scanf'
   p "abc 123".scanf("%s%d") => ["abc", 123]

There's considerable documentation in the source file, but it's not in
rdoc form. It's on my to-do list....

David

···

On Sun, 16 Sep 2007, Bil Kleb wrote:

--
* Books:
   RAILS ROUTING (new! http://www.awprofessional.com/title/0321509242\)
   RUBY FOR RAILS (http://www.manning.com/black\)
* Ruby/Rails training
     & consulting: Ruby Power and Light, LLC (http://www.rubypal.com)

Thanks -- this resolves my issue. Seems like the docs on scanf are
simply outdated. :slight_smile:

Alex

···

On Sep 16, 3:15 pm, dbl...@wobblini.net wrote:

> But the original project examples at

>scanf for Ruby, v.1.1.1

> might get you going...

That version is obsolete; it's best to use the one that ships with
Ruby. You have to require it, though -- it's standard library rather
than core.

   require 'scanf'
   p "abc 123".scanf("%s%d") => ["abc", 123]

There's considerable documentation in the source file, but it's not in
rdoc form. It's on my to-do list....