1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
|
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="Start" href="index.html">
<link rel="previous" href="Printexc.html">
<link rel="next" href="Queue.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Arg" rel="Chapter" href="Arg.html">
<link title="Arith_status" rel="Chapter" href="Arith_status.html">
<link title="Array" rel="Chapter" href="Array.html">
<link title="ArrayLabels" rel="Chapter" href="ArrayLabels.html">
<link title="Big_int" rel="Chapter" href="Big_int.html">
<link title="Bigarray" rel="Chapter" href="Bigarray.html">
<link title="Buffer" rel="Chapter" href="Buffer.html">
<link title="Callback" rel="Chapter" href="Callback.html">
<link title="CamlinternalMod" rel="Chapter" href="CamlinternalMod.html">
<link title="CamlinternalOO" rel="Chapter" href="CamlinternalOO.html">
<link title="Char" rel="Chapter" href="Char.html">
<link title="Complex" rel="Chapter" href="Complex.html">
<link title="Condition" rel="Chapter" href="Condition.html">
<link title="Dbm" rel="Chapter" href="Dbm.html">
<link title="Digest" rel="Chapter" href="Digest.html">
<link title="Dynlink" rel="Chapter" href="Dynlink.html">
<link title="Event" rel="Chapter" href="Event.html">
<link title="Filename" rel="Chapter" href="Filename.html">
<link title="Format" rel="Chapter" href="Format.html">
<link title="Gc" rel="Chapter" href="Gc.html">
<link title="Genlex" rel="Chapter" href="Genlex.html">
<link title="Graphics" rel="Chapter" href="Graphics.html">
<link title="GraphicsX11" rel="Chapter" href="GraphicsX11.html">
<link title="Hashtbl" rel="Chapter" href="Hashtbl.html">
<link title="Int32" rel="Chapter" href="Int32.html">
<link title="Int64" rel="Chapter" href="Int64.html">
<link title="Lazy" rel="Chapter" href="Lazy.html">
<link title="Lexing" rel="Chapter" href="Lexing.html">
<link title="List" rel="Chapter" href="List.html">
<link title="ListLabels" rel="Chapter" href="ListLabels.html">
<link title="Map" rel="Chapter" href="Map.html">
<link title="Marshal" rel="Chapter" href="Marshal.html">
<link title="MoreLabels" rel="Chapter" href="MoreLabels.html">
<link title="Mutex" rel="Chapter" href="Mutex.html">
<link title="Nativeint" rel="Chapter" href="Nativeint.html">
<link title="Num" rel="Chapter" href="Num.html">
<link title="Obj" rel="Chapter" href="Obj.html">
<link title="Oo" rel="Chapter" href="Oo.html">
<link title="Parsing" rel="Chapter" href="Parsing.html">
<link title="Pervasives" rel="Chapter" href="Pervasives.html">
<link title="Printexc" rel="Chapter" href="Printexc.html">
<link title="Printf" rel="Chapter" href="Printf.html">
<link title="Queue" rel="Chapter" href="Queue.html">
<link title="Random" rel="Chapter" href="Random.html">
<link title="Scanf" rel="Chapter" href="Scanf.html">
<link title="Set" rel="Chapter" href="Set.html">
<link title="Sort" rel="Chapter" href="Sort.html">
<link title="Stack" rel="Chapter" href="Stack.html">
<link title="StdLabels" rel="Chapter" href="StdLabels.html">
<link title="Str" rel="Chapter" href="Str.html">
<link title="Stream" rel="Chapter" href="Stream.html">
<link title="String" rel="Chapter" href="String.html">
<link title="StringLabels" rel="Chapter" href="StringLabels.html">
<link title="Sys" rel="Chapter" href="Sys.html">
<link title="Thread" rel="Chapter" href="Thread.html">
<link title="ThreadUnix" rel="Chapter" href="ThreadUnix.html">
<link title="Unix" rel="Chapter" href="Unix.html">
<link title="UnixLabels" rel="Chapter" href="UnixLabels.html">
<link title="Weak" rel="Chapter" href="Weak.html"><title>Printf</title>
</head>
<body>
<div class="navbar"><a href="Printexc.html">Previous</a>
<a href="index.html">Up</a>
<a href="Queue.html">Next</a>
</div>
<center><h1>Module <a href="type_Printf.html">Printf</a></h1></center>
<br>
<pre><span class="keyword">module</span> Printf: <code class="code"><span class="keyword">sig</span></code> <a href="Printf.html">..</a> <code class="code"><span class="keyword">end</span></code></pre>Formatted output functions.<br>
<hr width="100%">
<pre><span class="keyword">val</span> <a name="VALfprintf"></a>fprintf : <code class="type"><a href="Pervasives.html#TYPEout_channel">out_channel</a> -><br> ('a, <a href="Pervasives.html#TYPEout_channel">out_channel</a>, unit) <a href="Pervasives.html#TYPEformat">format</a> -> 'a</code></pre><div class="info">
<code class="code">fprintf outchan format arg1 ... argN</code> formats the arguments
<code class="code">arg1</code> to <code class="code">argN</code> according to the format string <code class="code">format</code>, and
outputs the resulting string on the channel <code class="code">outchan</code>.
<p>
The format is a character string which contains two types of
objects: plain characters, which are simply copied to the output
channel, and conversion specifications, each of which causes
conversion and printing of arguments.
<p>
Conversion specifications have the following form:
<p>
<code class="code">% [positional specifier] [flags] [width] [.precision] <span class="keyword">type</span></code>
<p>
In short, a conversion specification consists in the <code class="code">%</code> character,
followed by optional modifiers and a type which is made of one or
two characters. The types and their meanings are:
<p>
<ul>
<li><code class="code">d</code>, <code class="code">i</code>, <code class="code">n</code>, <code class="code">l</code>, <code class="code"><span class="constructor">L</span></code>, or <code class="code"><span class="constructor">N</span></code>: convert an integer argument to
signed decimal.</li>
<li><code class="code">u</code>: convert an integer argument to unsigned decimal.</li>
<li><code class="code">x</code>: convert an integer argument to unsigned hexadecimal,
using lowercase letters.</li>
<li><code class="code"><span class="constructor">X</span></code>: convert an integer argument to unsigned hexadecimal,
using uppercase letters.</li>
<li><code class="code">o</code>: convert an integer argument to unsigned octal.</li>
<li><code class="code">s</code>: insert a string argument.</li>
<li><code class="code"><span class="constructor">S</span></code>: insert a string argument in Caml syntax (double quotes, escapes).</li>
<li><code class="code">c</code>: insert a character argument.</li>
<li><code class="code"><span class="constructor">C</span></code>: insert a character argument in Caml syntax (single quotes, escapes).</li>
<li><code class="code">f</code>: convert a floating-point argument to decimal notation,
in the style <code class="code">dddd.ddd</code>.</li>
<li><code class="code"><span class="constructor">F</span></code>: convert a floating-point argument to Caml syntax (<code class="code">dddd.</code>
or <code class="code">dddd.ddd</code> or <code class="code">d.ddd e+-dd</code>).</li>
<li><code class="code">e</code> or <code class="code"><span class="constructor">E</span></code>: convert a floating-point argument to decimal notation,
in the style <code class="code">d.ddd e+-dd</code> (mantissa and exponent).</li>
<li><code class="code">g</code> or <code class="code"><span class="constructor">G</span></code>: convert a floating-point argument to decimal notation,
in style <code class="code">f</code> or <code class="code">e</code>, <code class="code"><span class="constructor">E</span></code> (whichever is more compact).</li>
<li><code class="code"><span class="constructor">B</span></code>: convert a boolean argument to the string <code class="code"><span class="keyword">true</span></code> or <code class="code"><span class="keyword">false</span></code></li>
<li><code class="code">b</code>: convert a boolean argument (for backward compatibility; do not
use in new programs).</li>
<li><code class="code">ld</code>, <code class="code">li</code>, <code class="code">lu</code>, <code class="code">lx</code>, <code class="code">lX</code>, <code class="code">lo</code>: convert an <code class="code">int32</code> argument to
the format specified by the second letter (decimal, hexadecimal, etc).</li>
<li><code class="code">nd</code>, <code class="code">ni</code>, <code class="code">nu</code>, <code class="code">nx</code>, <code class="code">nX</code>, <code class="code">no</code>: convert a <code class="code">nativeint</code> argument to
the format specified by the second letter.</li>
<li><code class="code"><span class="constructor">Ld</span></code>, <code class="code"><span class="constructor">Li</span></code>, <code class="code"><span class="constructor">Lu</span></code>, <code class="code"><span class="constructor">Lx</span></code>, <code class="code"><span class="constructor">LX</span></code>, <code class="code"><span class="constructor">Lo</span></code>: convert an <code class="code">int64</code> argument to
the format specified by the second letter.</li>
<li><code class="code">a</code>: user-defined printer. Takes two arguments and apply the
first one to <code class="code">outchan</code> (the current output channel) and to the
second argument. The first argument must therefore have type
<code class="code">out_channel <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> unit</code> and the second <code class="code"><span class="keywordsign">'</span>b</code>.
The output produced by the function is inserted in the output of
<code class="code">fprintf</code> at the current point.</li>
<li><code class="code">t</code>: same as <code class="code">%a</code>, but takes only one argument (with type
<code class="code">out_channel <span class="keywordsign">-></span> unit</code>) and apply it to <code class="code">outchan</code>.</li>
<li><code class="code">{ fmt %}</code>: convert a format string argument. The argument must
have the same type as the internal format string <code class="code">fmt</code>.</li>
<li><code class="code">\( fmt %\)</code>: format string substitution. Takes a format string
argument and substitutes it to the internal format string <code class="code">fmt</code>
to print following arguments. The argument must have the same
type as <code class="code">fmt</code>.</li>
<li><code class="code">!</code>: take no argument and flush the output.</li>
<li><code class="code">%</code>: take no argument and output one <code class="code">%</code> character.</li>
</ul>
The optional <code class="code">positional specifier</code> consists of an integer followed
by a <code class="code">$</code>; the integer indicates which argument to use, the first
argument being denoted by 1.
<p>
The optional <code class="code">flags</code> are:<ul>
<li><code class="code">-</code>: left-justify the output (default is right justification).</li>
<li><code class="code">0</code>: for numerical conversions, pad with zeroes instead of spaces.</li>
<li><code class="code">+</code>: for numerical conversions, prefix number with a <code class="code">+</code> sign if positive.</li>
<li>space: for numerical conversions, prefix number with a space if positive.</li>
<li><code class="code"><span class="keywordsign">#</span></code>: request an alternate formatting style for numbers.</li>
</ul>
The optional <code class="code">width</code> is an integer indicating the minimal
width of the result. For instance, <code class="code">%6d</code> prints an integer,
prefixing it with spaces to fill at least 6 characters.
<p>
The optional <code class="code">precision</code> is a dot <code class="code">.</code> followed by an integer
indicating how many digits follow the decimal point in the <code class="code">%f</code>,
<code class="code">%e</code>, and <code class="code">%<span class="constructor">E</span></code> conversions. For instance, <code class="code">%.4f</code> prints a <code class="code">float</code> with
4 fractional digits.
<p>
The integer in a <code class="code">width</code> or <code class="code">precision</code> can also be specified as
<code class="code">*</code>, in which case an extra integer argument is taken to specify
the corresponding <code class="code">width</code> or <code class="code">precision</code>. This integer argument
precedes immediately the argument to print, unless an optional
<code class="code">positional specifier</code> is given to indicates which argument to
use. For instance, <code class="code">%.*3$f</code> prints a <code class="code">float</code> with as many fractional
digits as the value of the third argument.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALprintf"></a>printf : <code class="type">('a, <a href="Pervasives.html#TYPEout_channel">out_channel</a>, unit) <a href="Pervasives.html#TYPEformat">format</a> -> 'a</code></pre><div class="info">
Same as <a href="Printf.html#VALfprintf"><code class="code"><span class="constructor">Printf</span>.fprintf</code></a>, but output on <code class="code">stdout</code>.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALeprintf"></a>eprintf : <code class="type">('a, <a href="Pervasives.html#TYPEout_channel">out_channel</a>, unit) <a href="Pervasives.html#TYPEformat">format</a> -> 'a</code></pre><div class="info">
Same as <a href="Printf.html#VALfprintf"><code class="code"><span class="constructor">Printf</span>.fprintf</code></a>, but output on <code class="code">stderr</code>.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALsprintf"></a>sprintf : <code class="type">('a, unit, string) <a href="Pervasives.html#TYPEformat">format</a> -> 'a</code></pre><div class="info">
Same as <a href="Printf.html#VALfprintf"><code class="code"><span class="constructor">Printf</span>.fprintf</code></a>, but instead of printing on an output channel,
return a string containing the result of formatting
the arguments.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALbprintf"></a>bprintf : <code class="type"><a href="Buffer.html#TYPEt">Buffer.t</a> -> ('a, <a href="Buffer.html#TYPEt">Buffer.t</a>, unit) <a href="Pervasives.html#TYPEformat">format</a> -> 'a</code></pre><div class="info">
Same as <a href="Printf.html#VALfprintf"><code class="code"><span class="constructor">Printf</span>.fprintf</code></a>, but instead of printing on an output channel,
append the formatted arguments to the given extensible buffer
(see module <a href="Buffer.html"><code class="code"><span class="constructor">Buffer</span></code></a>).<br>
</div>
<pre><span class="keyword">val</span> <a name="VALkfprintf"></a>kfprintf : <code class="type">(<a href="Pervasives.html#TYPEout_channel">out_channel</a> -> 'a) -><br> <a href="Pervasives.html#TYPEout_channel">out_channel</a> -><br> ('b, <a href="Pervasives.html#TYPEout_channel">out_channel</a>, unit, 'a) format4 -> 'b</code></pre><div class="info">
Same as <code class="code">fprintf</code>, but instead of returning immediately,
passes the out channel to its first argument at the end of printing.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALksprintf"></a>ksprintf : <code class="type">(string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b</code></pre><div class="info">
Same as <code class="code">sprintf</code> above, but instead of returning the string,
passes it to the first argument.<br>
</div>
<pre><span class="keyword">val</span> <a name="VALkprintf"></a>kprintf : <code class="type">(string -> 'a) -> ('b, unit, string, 'a) format4 -> 'b</code></pre><div class="info">
A deprecated synonym for <code class="code">ksprintf</code>.<br>
</div>
</body></html>
|