Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
printf and positional specifier
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ 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:

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.