File: printf.mdc

package info (click to toggle)
freemat 4.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 141,800 kB
  • ctags: 14,082
  • sloc: ansic: 126,788; cpp: 62,046; python: 2,080; perl: 1,255; sh: 1,146; yacc: 1,019; lex: 239; makefile: 100
file content (197 lines) | stat: -rw-r--r-- 8,150 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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197

 Usage

Prints values to the output. The general syntax for its use
is

    printf(format,a1,a2,...)

Here format is the format string, which is a string that
controls the format of the output. The values of the
variables a_i are substituted into the output as required.
It is an error if there are not enough variables to satisfy
the format string. Note that this printf command is not
vectorized! Each variable must be a scalar.
It is important to point out that the printf function does
not add a newline (or carriage return) to the output by
default. That can lead to some confusing behavior if you do
not know what to expect. For example, the command printf
('Hello') does not appear to produce any output. In fact, it
does produce the text, but it then gets overwritten by the
prompt. To see the text, you need printf('Hello
'). This seems odd, but allows you to assemble a line using
multiple printf commands, including the '
' when you are done with the line. You can also use the '\r'
character as an explicit carriage return (with no line
feed). This allows you to write to the same line many times
(to show a progress string, for example).


 of the format string

The format string is a character string, beginning and
ending in its initial shift state, if any. The format string
is composed of zero or more directives: ordinary characters
(not %), which are copied unchanged to the output stream;
and conversion specifications, each of which results in
fetching zero or more subsequent arguments. Each conversion
specification is introduced by the character %, and ends
with a conversion specifier. In between there may be (in
this order) zero or more flags, an optional minimum field
width, and an optional precision.
The arguments must correspond properly (after type
promotion) with the conversion specifier, and are used in
the order given.


 conversion specifier

The character % is followed by zero or more of the following
flags:

* # The value should be converted to an ``alternate form''.
  For o conversions, the first character of the output
  string is made zero (by prefixing a 0 if it was not zero
  already). For x and X conversions, a nonzero result has
  the string '0x' (or '0X' for X conversions) prepended to
  it. For a, A, e, E, f, F, g, and G conversions, the result
  will always contain a decimal point, even if no digits
  follow it (normally, a decimal point appears in the
  results of those conversions only if a digit follows). For
  g and G conversions, trailing zeros are not removed from
  the result as they would otherwise be. For other
  conversions, the result is undefined.
* 0 The value should be zero padded. For d, i, o, u, x, X,
  a, A, e, E, f, F, g, and G conversions, the converted
  value is padded on the left with zeros rather than blanks.
  If the 0 and - flags both appear, the 0 flag is ignored.
  If a precision is given with a numeric conversion (d, i,
  o, u, x, and X), the 0 flag is ignored. For other
  conversions, the behavior is undefined.
* - The converted value is to be left adjusted on the field
  boundary. (The default is right justification.) Except for
  n conversions, the converted value is padded on the right
  with blanks, rather than on the left with blanks or zeros.
  A - overrides a 0 if both are given.
* ' ' (a space) A blank should be left before a positive
  number (or empty string) produced by a signed conversion.
* + A sign (+ or -) always be placed before a number
  produced by a signed conversion. By default a sign is used
  only for negative numbers. A + overrides a space if both
  are used.



 conversion specifier

An optional decimal digit string (with nonzero first digit)
specifying a minimum field width. If the converted value has
fewer characters than the field width, it will be padded
with spaces on the left (or right, if the left-adjustment
flag has been given). A negative field width is taken as a
'-' flag followed by a positive field width. In no case does
a non-existent or small field width cause truncation of a
field; if the result of a conversion is wider than the field
width, the field is expanded to contain the conversion
result.


 conversion specifier

An optional precision, in the form of a period ('.')
followed by an optional decimal digit string. If the
precision is given as just '.', or the precision is
negative, the precision is taken to be zero. This gives the
minimum number of digits to appear for d, i, o, u, x, and X
conversions, the number of digits to appear after the radix
character for a, A, e, E, f, and F conversions, the maximum
number of significant digits for g and G conversions, or the
maximum number of characters to be printed from a string for
s conversions.


 conversion specifier

A character that specifies the type of conversion to be
applied. The conversion specifiers and their meanings are:

* d,i The int argument is converted to signed decimal
  notation. The precision, if any, gives the minimum number
  of digits that must appear; if the converted value
  requires fewer digits, it is padded on the left with
  zeros. The default precision is 1. When 0 is printed with
  an explicit precision 0, the output is empty.
* o,u,x,X The unsigned int argument is converted to unsigned
  octal (o), unsigned decimal (u), or unsigned hexadecimal
  (x and X) notation. The letters abcdef are used for x
  conversions; the letters ABCDEF are used for X
  conversions. The precision, if any, gives the minimum
  number of digits that must appear; if the converted value
  requires fewer digits, it is padded on the left with
  zeros. The default precision is 1. When 0 is printed with
  an explicit precision 0, the output is empty.
* e,E The double argument is rounded and converted in the
  style [-]d.ddde dd where there is one digit before the
  decimal-point character and the number of digits after it
  is equal to the precision; if the precision is missing, it
  is taken as 6; if the precision is zero, no decimal-point
  character appears. An E conversion uses the letter E
  (rather than e) to introduce the exponent. The exponent
  always contains at least two digits; if the value is zero,
  the exponent is 00.
* f,F The double argument is rounded and converted to
  decimal notation in the style [-]ddd.ddd, where the number
  of digits after the decimal-point character is equal to
  the precision specification. If the precision is missing,
  it is taken as 6; if the precision is explicitly zero, no
  decimal-point character appears. If a decimal point
  appears, at least one digit appears before it.
* g,G The double argument is converted in style f or e (or F
  or E for G conversions). The precision specifies the
  number of significant digits. If the precision is missing,
  6 digits are given; if the precision is zero, it is
  treated as 1. Style e is used if the exponent from its
  conversion is less than -4 or greater than or equal to the
  precision. Trailing zeros are removed from the fractional
  part of the result; a decimal point appears only if it is
  followed by at least one digit.
* c The int argument is converted to an unsigned char, and
  the resulting character is written.
* s The string argument is printed.
* % A '' is written. No argument is converted. The complete
  conversion specification is '%'.



 Example

Here are some examples of the use of printf with various
arguments. First we print out an integer and double value.

  --> printf('intvalue is %d, floatvalue is %f\n',3,1.53);
  intvalue is 3, floatvalue is 1.530000

Next, we print out a string value.

  --> printf('string value is %s\n','hello');
  string value is hello

Now, we print out an integer using 12 digits, zeros up
front.

  --> printf('integer padded is %012d\n',32);
  integer padded is 000000000032

Print out a double precision value with a sign, a total of
18 characters (zero prepended if necessary), a decimal
point, and 12 digit precision.

  --> printf('float value is %+018.12f\n',pi);
  float value is +0003.141592653590


* FreeMat_Documentation
* Input/Ouput_Functions
* Generated on Thu Jul 25 2013 17:17:39 for FreeMat by
  doxygen_ 1.8.1.1