From hb at stat.berkeley.edu  Mon Feb  2 20:34:37 2009
From: hb at stat.berkeley.edu (Henrik Bengtsson)
Date: Mon, 2 Feb 2009 11:34:37 -0800
Subject: [Rd] Flag '#' in sprintf() gives an error in R v2.9.0 devel
Message-ID: <59d7961d0902021134s7061d3e7i5ce8b6fea6120518@mail.gmail.com>

Hi,

in R v2.8.1 patched (2008-12-22 r47296) the following works:

> sprintf("%#x", 1)
[1] "0x1"

whereas in R v2.9.0 devel (2009-01-08 r47515) it gives:

> sprintf("%#x", 1);
Error in sprintf("%#x", 1) :
  use format %f, %e, %g or %a for numeric objects

Not sure if this was an intended move or not.

DETAILS:
Typically, the '#' flag modifies the output of (s)printf() as follows:

"#  Used with o, x or X specifiers the value is preceeded with 0, 0x
or 0X respectively for values different than zero.
Used with e, E and f, it forces the written output to contain a
decimal point even if no digits would follow. By default, if no digits
follow, no decimal point is written. Used with g or G the result is
the same as with e or E but trailing zeros are not removed."

Source: http://www.cplusplus.com/reference/clibrary/cstdio/printf.html

I know there are many flavors of what format strings printf() supports
and I don't have the Kernighan & Ritchie book in help(sprintf).

/Henrik



[Rd] Flag '#' in sprintf() gives an error in R v2.9.0 devel
Henrik Bengtsson