Browse thread
printf and positional specifier
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2006-11-11 (21:15) |
From: | Peter Gregory <Peter.Gregory@c...> |
Subject: | Re: [Caml-list] printf and positional specifier |
Martin Jambon wrote: > On Sat, 11 Nov 2006, Peter Gregory wrote: > >> Anastasia Gornostaeva wrote: >>> Hello. >>> >>> $ ocaml >>> Objective Caml version 3.09.3 >>> >>> # open Printf;; >>> # printf "%2$d %1$s" "abc" 2;; >>> Bad conversion %$, at char number 0 in format string ``%2$d %1$s'' >>> >>> >>> How? >>> >>> ermine >>> >> >> Hi Ermine, >> >> I'm not sure that I understand your question. I think to achieve what >> you seem to be trying, you would simply write: >> >> # printf "%d %s" 2 "abc";; >> >> You just put the parameters in the order they came in the string. >> Does that help, it seems like perhaps you needed more than that. > > The dollar stuff is real, although I have no idea of how to make it > work. It's the last paragraph in the description of Printf.fprintf: > http://caml.inria.fr/pub/docs/manual-ocaml/libref/Printf.html > > I take a different reading to you Martin, although I think it is confusing. I believe that the number specified before the dollar sign is the argument that specifies the /precision/ of the output. So, it is not to specify the argument to print, but the argument to use as precision. That said, I tried it in the context they suggest and I couldn't make it work! Ermine: do you have a situation where this is important? I can't think of any situation that comes to mind. Peter.