Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
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.