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 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="Start" href="index.html">
<link rel="previous" href="Stdlib.Printexc.html">
<link rel="next" href="Stdlib.Queue.html">
<link rel="Up" href="Stdlib.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of extensions" rel=Appendix href="index_extensions.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="Array" rel="Chapter" href="Array.html">
<link title="ArrayLabels" rel="Chapter" href="ArrayLabels.html">
<link title="Bigarray" rel="Chapter" href="Bigarray.html">
<link title="Bool" rel="Chapter" href="Bool.html">
<link title="Buffer" rel="Chapter" href="Buffer.html">
<link title="Bytes" rel="Chapter" href="Bytes.html">
<link title="BytesLabels" rel="Chapter" href="BytesLabels.html">
<link title="Callback" rel="Chapter" href="Callback.html">
<link title="CamlinternalFormat" rel="Chapter" href="CamlinternalFormat.html">
<link title="CamlinternalFormatBasics" rel="Chapter" href="CamlinternalFormatBasics.html">
<link title="CamlinternalLazy" rel="Chapter" href="CamlinternalLazy.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="Digest" rel="Chapter" href="Digest.html">
<link title="Dynlink" rel="Chapter" href="Dynlink.html">
<link title="Ephemeron" rel="Chapter" href="Ephemeron.html">
<link title="Event" rel="Chapter" href="Event.html">
<link title="Filename" rel="Chapter" href="Filename.html">
<link title="Float" rel="Chapter" href="Float.html">
<link title="Format" rel="Chapter" href="Format.html">
<link title="Fun" rel="Chapter" href="Fun.html">
<link title="Gc" rel="Chapter" href="Gc.html">
<link title="Genlex" rel="Chapter" href="Genlex.html">
<link title="Hashtbl" rel="Chapter" href="Hashtbl.html">
<link title="Int" rel="Chapter" href="Int.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="Obj" rel="Chapter" href="Obj.html">
<link title="Ocaml_operators" rel="Chapter" href="Ocaml_operators.html">
<link title="Oo" rel="Chapter" href="Oo.html">
<link title="Option" rel="Chapter" href="Option.html">
<link title="Parsing" rel="Chapter" href="Parsing.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="Result" rel="Chapter" href="Result.html">
<link title="Scanf" rel="Chapter" href="Scanf.html">
<link title="Seq" rel="Chapter" href="Seq.html">
<link title="Set" rel="Chapter" href="Set.html">
<link title="Spacetime" rel="Chapter" href="Spacetime.html">
<link title="Stack" rel="Chapter" href="Stack.html">
<link title="StdLabels" rel="Chapter" href="StdLabels.html">
<link title="Stdlib" rel="Chapter" href="Stdlib.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="Uchar" rel="Chapter" href="Uchar.html">
<link title="Unit" rel="Chapter" href="Unit.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>Stdlib.Printf</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Stdlib.Printexc.html" title="Stdlib.Printexc">Previous</a>
<a class="up" href="Stdlib.html" title="Stdlib">Up</a>
<a class="post" href="Stdlib.Queue.html" title="Stdlib.Queue">Next</a>
</div>
<h1>Module <a href="type_Stdlib.Printf.html">Stdlib.Printf</a></h1>
<pre><span id="MODULEPrintf"><span class="keyword">module</span> Printf</span>: <code class="type"><a href="Printf.html">Printf</a></code></pre><hr width="100%">
<pre><span id="VALfprintf"><span class="keyword">val</span> fprintf</span> : <code class="type"><a href="Stdlib.html#TYPEout_channel">out_channel</a> -> ('a, <a href="Stdlib.html#TYPEout_channel">out_channel</a>, unit) <a href="Stdlib.html#TYPEformat">format</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p><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>
<p>The format string 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>
<p>Conversion specifications have the following form:</p>
<p><code class="code">% [flags] [width] [.precision] <span class="keyword">type</span></code></p>
<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.</p>
<p>The types and their meanings are:</p>
<ul>
<li><code class="code">d</code>, <code class="code">i</code>: convert an integer argument to signed decimal.
The flag <code class="code"><span class="keywordsign">#</span></code> adds underscores to large values for readability.</li>
<li><code class="code">u</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
unsigned decimal. Warning: <code class="code">n</code>, <code class="code">l</code>, <code class="code"><span class="constructor">L</span></code>, and <code class="code"><span class="constructor">N</span></code> are
used for <code class="code">scanf</code>, and should not be used for <code class="code">printf</code>.
The flag <code class="code"><span class="keywordsign">#</span></code> adds underscores to large values for readability.</li>
<li><code class="code">x</code>: convert an integer argument to unsigned hexadecimal,
using lowercase letters.
The flag <code class="code"><span class="keywordsign">#</span></code> adds a <code class="code">0x</code> prefix to non zero values.</li>
<li><code class="code"><span class="constructor">X</span></code>: convert an integer argument to unsigned hexadecimal,
using uppercase letters.
The flag <code class="code"><span class="keywordsign">#</span></code> adds a <code class="code">0<span class="constructor">X</span></code> prefix to non zero values.</li>
<li><code class="code">o</code>: convert an integer argument to unsigned octal.
The flag <code class="code"><span class="keywordsign">#</span></code> adds a <code class="code">0</code> prefix to non zero values.</li>
<li><code class="code">s</code>: insert a string argument.</li>
<li><code class="code"><span class="constructor">S</span></code>: convert a string argument to OCaml 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>: convert a character argument to OCaml 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 OCaml syntax (<code class="code">dddd.</code>
or <code class="code">dddd.ddd</code> or <code class="code">d.ddd e+-dd</code>).
Converts to hexadecimal with the <code class="code"><span class="keywordsign">#</span></code> flag (see <code class="code">h</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). Moreover,
any trailing zeros are removed from the fractional part of the result
and the decimal-point character is removed if there is no fractional
part remaining.</li>
<li><code class="code">h</code> or <code class="code"><span class="constructor">H</span></code>: convert a floating-point argument to hexadecimal notation,
in the style <code class="code">0xh.hhhh p+-dd</code> (hexadecimal mantissa, exponent in
decimal and denotes a power of 2).</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 (deprecated; 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. Take 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 take 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 to its type digest.
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. Take a format string
argument and substitute it to the internal format string <code class="code">fmt</code>
to print following arguments. The argument must have the same
type as the internal format string <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>
<li><code class="code">@</code>: take no argument and output one <code class="code">@</code> character.</li>
<li><code class="code">,</code>: take no argument and output nothing: a no-op delimiter for
conversion specifications.</li>
</ul>
<p>The optional <code class="code">flags</code> are:</p>
<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 signed numerical conversions, prefix number with a <code class="code">+</code>
sign if positive.</li>
<li>space: for signed 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 the integer types
and the floating-point type <code class="code"><span class="constructor">F</span></code>.</li>
</ul>
<p>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>
<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>, <code class="code">%<span class="constructor">E</span></code>, <code class="code">%h</code>, and <code class="code">%<span class="constructor">H</span></code> conversions or the maximum number of
significant digits to appear for the <code class="code">%<span class="constructor">F</span></code>, <code class="code">%g</code> and <code class="code">%<span class="constructor">G</span></code> conversions.
For instance, <code class="code">%.4f</code> prints a <code class="code">float</code> with 4 fractional digits.</p>
<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.
For instance, <code class="code">%.*f</code> prints a <code class="code">float</code> with as many fractional
digits as the value of the argument given before the float.</p>
</div>
</div>
<pre><span id="VALprintf"><span class="keyword">val</span> printf</span> : <code class="type">('a, <a href="Stdlib.html#TYPEout_channel">out_channel</a>, unit) <a href="Stdlib.html#TYPEformat">format</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>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>.</p>
</div>
</div>
<pre><span id="VALeprintf"><span class="keyword">val</span> eprintf</span> : <code class="type">('a, <a href="Stdlib.html#TYPEout_channel">out_channel</a>, unit) <a href="Stdlib.html#TYPEformat">format</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>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>.</p>
</div>
</div>
<pre><span id="VALsprintf"><span class="keyword">val</span> sprintf</span> : <code class="type">('a, unit, string) <a href="Stdlib.html#TYPEformat">format</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>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.</p>
</div>
</div>
<pre><span id="VALbprintf"><span class="keyword">val</span> bprintf</span> : <code class="type"><a href="Buffer.html#TYPEt">Buffer.t</a> -> ('a, <a href="Buffer.html#TYPEt">Buffer.t</a>, unit) <a href="Stdlib.html#TYPEformat">format</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>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>).</p>
</div>
</div>
<pre><span id="VALifprintf"><span class="keyword">val</span> ifprintf</span> : <code class="type">'b -> ('a, 'b, 'c, unit) <a href="Stdlib.html#TYPEformat4">format4</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>Same as <a href="Printf.html#VALfprintf"><code class="code"><span class="constructor">Printf</span>.fprintf</code></a>, but does not print anything.
Useful to ignore some material when conditionally printing.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.10.0</li>
</ul>
</div>
<pre><span id="VALibprintf"><span class="keyword">val</span> ibprintf</span> : <code class="type"><a href="Buffer.html#TYPEt">Buffer.t</a> -> ('a, <a href="Buffer.html#TYPEt">Buffer.t</a>, unit) <a href="Stdlib.html#TYPEformat">format</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>Same as <a href="Printf.html#VALbprintf"><code class="code"><span class="constructor">Printf</span>.bprintf</code></a>, but does not print anything.
Useful to ignore some material when conditionally printing.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.11.0</li>
</ul>
</div>
<p>Formatted output functions with continuations.</p>
<pre><span id="VALkfprintf"><span class="keyword">val</span> kfprintf</span> : <code class="type">(<a href="Stdlib.html#TYPEout_channel">out_channel</a> -> 'd) -><br> <a href="Stdlib.html#TYPEout_channel">out_channel</a> -> ('a, <a href="Stdlib.html#TYPEout_channel">out_channel</a>, unit, 'd) <a href="Stdlib.html#TYPEformat4">format4</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>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.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.09.0</li>
</ul>
</div>
<pre><span id="VALikfprintf"><span class="keyword">val</span> ikfprintf</span> : <code class="type">('b -> 'd) -> 'b -> ('a, 'b, 'c, 'd) <a href="Stdlib.html#TYPEformat4">format4</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>Same as <code class="code">kfprintf</code> above, but does not print anything.
Useful to ignore some material when conditionally printing.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.01.0</li>
</ul>
</div>
<pre><span id="VALksprintf"><span class="keyword">val</span> ksprintf</span> : <code class="type">(string -> 'd) -> ('a, unit, string, 'd) <a href="Stdlib.html#TYPEformat4">format4</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>Same as <code class="code">sprintf</code> above, but instead of returning the string,
passes it to the first argument.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.09.0</li>
</ul>
</div>
<pre><span id="VALkbprintf"><span class="keyword">val</span> kbprintf</span> : <code class="type">(<a href="Buffer.html#TYPEt">Buffer.t</a> -> 'd) -><br> <a href="Buffer.html#TYPEt">Buffer.t</a> -> ('a, <a href="Buffer.html#TYPEt">Buffer.t</a>, unit, 'd) <a href="Stdlib.html#TYPEformat4">format4</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>Same as <code class="code">bprintf</code>, but instead of returning immediately,
passes the buffer to its first argument at the end of printing.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 3.10.0</li>
</ul>
</div>
<pre><span id="VALikbprintf"><span class="keyword">val</span> ikbprintf</span> : <code class="type">(<a href="Buffer.html#TYPEt">Buffer.t</a> -> 'd) -><br> <a href="Buffer.html#TYPEt">Buffer.t</a> -> ('a, <a href="Buffer.html#TYPEt">Buffer.t</a>, unit, 'd) <a href="Stdlib.html#TYPEformat4">format4</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>Same as <code class="code">kbprintf</code> above, but does not print anything.
Useful to ignore some material when conditionally printing.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.11.0</li>
</ul>
</div>
<p>Deprecated</p>
<pre><span id="VALkprintf"><span class="keyword">val</span> kprintf</span> : <code class="type">(string -> 'b) -> ('a, unit, string, 'b) <a href="Stdlib.html#TYPEformat4">format4</a> -> 'a</code></pre><div class="info ">
<div class="info-desc">
<p>A deprecated synonym for <code class="code">ksprintf</code>.</p>
</div>
</div>
</body></html>
|