From: musgravejw@... Date: 2016-02-13T04:15:55+00:00 Subject: [ruby-core:73791] [Ruby trunk Bug#12035] scanf suspicious results. Issue #12035 has been updated by John Musgrave. Peter Camilleri wrote: > I think you're missing the point. Of course %s would seem to work in this case. > My question is about the %\[set\] (and %\[\^set\]) format specifier that is documented as part of scanf. > It also works, but only **once**. That's the rub. Well, the sets in your string are whitespace delimited, so there is a mismatch between your input string and the format. You would need to match on the whitespace character. ``` "de f g".scanf("%[de]%c%[f]%c%[g]") => ["de", " ", "f", " ", "g"] ``` ---------------------------------------- Bug #12035: scanf suspicious results. https://bugs.ruby-lang.org/issues/12035#change-56972 * Author: Peter Camilleri * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.2.3p173 (2015-08-18 revision 51636) [i386-cygwin], ruby 2.1.6p336 (2015-04-13 revision 50298) [i386-mingw32], and ruby 1.9.3p484 (2013-11-22) [i386-mingw32] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- The code: 'a b c'.scanf('%[a] %[b] %[c]') yields the result: ["a"] and not ["a","b","c"] as expected. So far it seems that when sets of characters are used, only the first one in the parse specification string actually returns any data. -- https://bugs.ruby-lang.org/ Unsubscribe: