File: 255.htm

package info (click to toggle)
eagle 4.16-5
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 36,508 kB
  • sloc: sh: 82; makefile: 32
file content (178 lines) | stat: -rw-r--r-- 10,703 bytes parent folder | download | duplicates (2)
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
<html>
<head>
<title>EAGLE Help: printf()</title>
</head>
<body bgcolor=white>
<font face=Helvetica,Arial>
<hr>
<i>EAGLE Help</i>
<h1><center>printf()</center></h1>
<hr>
<dl>
<dt>
<b>Function</b>
<dd>
Writes formatted output to a file.
<p>
<dt>
<b>Syntax</b>
<dd>
<tt>int printf(string format[, argument, ...]);</tt>
<p>
<dt>
<b>Returns</b>
<dd>
The <tt>printf</tt> function returns the number of characters written
to the file that has been opened by the most recent <a href=277.htm>output</a>
statement.
<p>
In case of an error, <tt>printf</tt> returns <tt>-1</tt>.
<p>
</dl>
<b>See also</b> <a href=256.htm>sprintf</a>,
<a href=277.htm>output</a>,
<a href=235.htm>fileerror</a>
<p>
<b>Format string</b>
<p>
The format string controls how the arguments will be converted,
formatted and printed. There must be exactly as many arguments
as necessary for the format. The number and type of arguments
will be checked against the format, and any mismatch will lead
to an error message.
<p>
The format string contains two types of objects - <i>plain characters</i>
and <i>format specifiers</i>:
<ul>
<li>Plain characters are simply copied verbatim to the output
<li>Format specifiers fetch arguments from the argument list
and apply formatting to them
</ul>
<b>Format specifiers</b>
<p>
A format specifier has the following form:
<p>
<tt>% [flags] [width] [.prec] type</tt>
<p>
Each format specification begins with the percent character (<tt>%</tt>).
After the <tt>%</tt> comes the following, in this order:
<ul>
<li>an optional sequence of flag characters, <tt>[flags]</tt>
<li>an optional width specifier, <tt>[width]</tt>
<li>an optional precision specifier, <tt>[.prec]</tt>
<li>the conversion type character, <tt>type</tt>
</ul>
<b>Conversion type characters</b>
<p>
<table>
<tr><td valign=top><font face=Helvetica,Arial><tt>d</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>signed</b> decimal <b>int</b></font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>o</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>unsigned</b> octal <b>int</b></font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>u</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>unsigned</b> decimal <b>int</b></font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>x</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>unsigned</b> hexadecimal <b>int</b> (with <b>a</b>, <b>b</b>,...)</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>X</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>unsigned</b> hexadecimal <b>int</b> (with <b>A</b>, <b>B</b>,...)</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>f</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>signed real</b> value of the form <tt>[-]dddd.dddd</tt></font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>e</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>signed real</b> value of the form <tt>[-]d.dddd</tt>e<tt>[&plusmn;]ddd</tt></font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>E</tt>   </font></td><td valign=top><font face=Helvetica,Arial>same as <tt>e</tt>, but with <b>E</b> for exponent</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>g</tt>   </font></td><td valign=top><font face=Helvetica,Arial><b>signed real</b> value in either <tt>e</tt> or <tt>f</tt> form, based on given value and precision</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>G</tt>   </font></td><td valign=top><font face=Helvetica,Arial>same as <tt>g</tt>, but with <b>E</b> for exponent if <tt>e</tt> format used</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>c</tt>   </font></td><td valign=top><font face=Helvetica,Arial>single character</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>s</tt>   </font></td><td valign=top><font face=Helvetica,Arial>character string</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>%</tt>   </font></td><td valign=top><font face=Helvetica,Arial>the <tt>%</tt> character is printed</font></td></tr>
</table>
<p>
<b>Flag characters</b>
<p>
The following flag characters can appear in any order and combination.
<p>
<table>
<tr><td valign=top><font face=Helvetica,Arial><tt>"-"</tt>   </font></td><td valign=top><font face=Helvetica,Arial>the formatted item is left-justified within the field; normally, items are right-justified</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>"+"</tt>   </font></td><td valign=top><font face=Helvetica,Arial>a signed, positive item will always start with a plus character (<tt>+</tt>); normally, only negative items begin with a sign</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>" "</tt>   </font></td><td valign=top><font face=Helvetica,Arial>a signed, positive item will always start with a space character; if both <tt>"+"</tt> and <tt>" "</tt> are specified,  <tt>"+"</tt> overrides <tt>" "</tt></font></td></tr>
</table>
<p>
<b>Width specifiers</b>
<p>
The width specifier sets the minimum field width for an output value.
<p>
Width is specified either directly, through a decimal digit string, or
indirectly, through an asterisk (<tt>*</tt>). If you use an asterisk for the
width specifier, the next argument in the call (which must be an <tt>int</tt>)
specifies the minimum output field width.
<p>
In no case does a nonexistent or small field width cause truncation of
a field. If the result of a conversion is wider than the field width,
the field is simply expanded to contain the conversion result.
<p>
<table>
<tr><td valign=top><font face=Helvetica,Arial><tt><i>n</i></tt>   </font></td><td valign=top><font face=Helvetica,Arial>At least <i>n</i> characters are printed. If the output value has less than <i>n</i> characters, the output is padded with blanks (right-padded if <tt>"-"</tt> flag given, left-padded otherwise).</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>0<i>n</i></tt>   </font></td><td valign=top><font face=Helvetica,Arial>At least <i>n</i> characters are printed. If the output value has less than <i>n</i> characters, it is filled on the left with zeroes.</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>*</tt>   </font></td><td valign=top><font face=Helvetica,Arial>The argument list supplies the width specifier, which must precede the actual argument being formatted.</font></td></tr>
</table>
<p>
<b>Precision specifiers</b>
<p>
A precision specifier always begins with a period (<tt>.</tt>) to
separate it from any preceding width specifier. Then, like width,
precision is specified either directly through a decimal digit string, or
indirectly, through an asterisk (<tt>*</tt>). If you use an asterisk for the
precision specifier, the next argument in the call (which must be an <tt>int</tt>)
specifies the precision.
<p>
<table>
<tr><td valign=top><font face=Helvetica,Arial>none   </font></td><td valign=top><font face=Helvetica,Arial>Precision set to default.</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>.0</tt>   </font></td><td valign=top><font face=Helvetica,Arial>For <tt>int</tt> types, precision is set to default; for <tt>real</tt> types, no decimal point is printed.</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>.<i>n</i></tt>   </font></td><td valign=top><font face=Helvetica,Arial><i>n</i> characters or <i>n</i> decimal places are printed. If the output value has more than <i>n</i> characters the output might be truncated or rounded (depending on the type character).</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>*</tt>   </font></td><td valign=top><font face=Helvetica,Arial>The argument list supplies the precision specifier, which must precede the actual argument being formatted.</font></td></tr>
</table>
<p>
<b>Default precision values</b>
<p>
<table>
<tr><td valign=top><font face=Helvetica,Arial><tt>douxX</tt>   </font></td><td valign=top><font face=Helvetica,Arial>1</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>eEf</tt>   </font></td><td valign=top><font face=Helvetica,Arial>6</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>gG</tt>   </font></td><td valign=top><font face=Helvetica,Arial>all significant digits</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>c</tt>   </font></td><td valign=top><font face=Helvetica,Arial>no effect</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>s</tt>   </font></td><td valign=top><font face=Helvetica,Arial>print entire string</font></td></tr>
</table>
<p>
<b>How precision specification (</b><tt>.n</tt><b>) affects conversion</b>
<p>
<table>
<tr><td valign=top><font face=Helvetica,Arial><tt>douxX</tt>   </font></td><td valign=top><font face=Helvetica,Arial><i>.n</i> specifies that at least <i>n</i> characters are printed. If the input argument has less than <i>n</i> digits, the output value is left-padded with zeros. If the input argument has more than <i>n</i> digits, the output value is <b>not</b> truncated.</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>eEf</tt>   </font></td><td valign=top><font face=Helvetica,Arial><i>.n</i> specifies that <i>n</i> characters are printed after the decimal point, and the last digit printed is rounded.</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>gG</tt>   </font></td><td valign=top><font face=Helvetica,Arial><i>.n</i> specifies that at most <i>n</i> significant digits are printed.</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>c</tt>   </font></td><td valign=top><font face=Helvetica,Arial><i>.n</i> has no effect on the output.</font></td></tr>
<tr><td valign=top><font face=Helvetica,Arial><tt>s</tt>   </font></td><td valign=top><font face=Helvetica,Arial><i>.n</i> specifies that no more than <i>n</i> characters are printed.</font></td></tr>
</table>
<p>
<b>Binary zero characters</b>
<p>
Unlike <a href=256.htm>sprintf</a>, the <tt>printf</tt> function can print binary zero characters (0x00).
<pre>
char c = 0x00;
printf("%c", c);
</pre>
<p>
<b>Example</b>
<pre>
int i = 42;
real r = 3.14;
char c = 'A';
string s = "Hello";
printf("Integer: %8d\n", i);
printf("Hex:     %8X\n", i);
printf("Real:    %8f\n", r);
printf("Char:    %-8c\n", c);
printf("String:  %-8s\n", s);
</pre>

<hr>
<table width=100% cellspacing=0 border=0><tr><td align=left><font face=Helvetica,Arial>
<a href=index.htm>Index</a>
</font></td><td align=right><font face=Helvetica,Arial size=-1>
<i>Copyright &copy; 2005 CadSoft Computer GmbH</i>
</font></td></tr></table>
<hr>
</font>
</body>
</html>