|
|
1.1 root 1: .th PRINTF III 9/17/73
2: .sh NAME
3: printf \*- formatted print
4: .sh SYNOPSIS
5: .ft B
6: printf(format, arg\s6\d1\u\s10, ...);
7: .br
8: char *format;
9: .ft R
10: .sh DESCRIPTION
11: .it Printf
12: converts, formats, and prints its arguments after the first
13: under control of the first argument.
14: The first argument is a character string
15: which contains
16: two types of objects:
17: plain characters, which are simply copied to the
18: output stream,
19: and conversion specifications,
20: each of which causes conversion and printing
21: of the next successive argument to
22: .it printf.
23: .s3
24: Each conversion specification is introduced by
25: the character \fB%\fR.
26: Following the \fB%\fR, there may be
27: .s3
28: .lp +6 2
29: \*- an optional minus sign `\*-' which specifies
30: .it "left adjustment"
31: of the converted argument
32: in the
33: indicated field;
34: .s3
35: .lp +6 2
36: \*- an optional digit string specifying a
37: .it "field width;"
38: if the converted argument has fewer characters
39: than the field width
40: it will be blank-padded on the left (or right,
41: if the left-adjustment indicator has been
42: given) to make up the field width;
43: .s3
44: .lp +6 2
45: \*- an optional period ``\fB.\fR'' which serves to
46: separate the field width from the
47: next digit string;
48: .s3
49: .lp +6 2
50: \*- an optional digit string
51: .it "(precision)"
52: which specifies
53: the number of digits to appear after the
54: decimal point, for e- and f-conversion,
55: or the maximum number of characters
56: to be printed from a string;
57: .s3
58: .lp +6 2
59: \*- a character which indicates the type of
60: conversion to be applied.
61: .s3
62: .i0
63: The conversion characters
64: and their meanings are
65: .s3
66: .lp +6 3
67: d The argument is converted to decimal notation.
68: .s3
69: .lp +6 3
70: o The argument is converted to octal notation.
71: ``0'' will always appear as the first digit.
72: .s3
73: .lp +6 3
74: f The argument is converted to decimal notation
75: in the style ``[\fB\*-\fR]ddd.ddd''
76: where the number of d's after the decimal point
77: is equal to the precision specification
78: for the argument.
79: If the precision
80: is missing,
81: 6 digits are given;
82: if the precision is explicitly 0, no digits and
83: no decimal point are printed.
84: The argument should be
85: .it float
86: or
87: .it double.
88: .s3
89: .lp +6 3
90: e The argument is converted in the style
91: ``[\fB\*-\fR]d\fB.\fRddd\fBe\fR\(+-dd''
92: where there is one digit before the decimal point and
93: the number after is equal to the
94: precision specification for the argument;
95: when the precision is missing,
96: 6 digits are produced.
97: The argument should be a
98: .it float
99: or
100: .it double
101: quantity.
102: .s3
103: .lp +6 3
104: c The argument character or character-pair is printed if non-null.
105: .s3
106: .lp +6 3
107: s The argument is taken to be a string (character pointer)
108: and characters from the string are printed until
109: a null character or until
110: the number of characters indicated by the precision
111: specification is reached;
112: however if the precision is 0 or missing
113: all characters up to a null are printed.
114: .s3
115: .lp +6 3
116: l The argument is taken to be an unsigned
117: integer which is converted to decimal
118: and printed (the result will be in the
119: range 0 to 65535).
120: .s3
121: .i0
122: If no recognizable character appears after the \fB%\fR,
123: that character is printed;
124: thus \fb%\fR may be printed by use of the
125: string \fB%%\fR.
126: In no case does a non-existent or small field width
127: cause truncation of a field;
128: padding takes place only if the specified field
129: width exceeds the actual width.
130: Characters generated by
131: .it printf
132: are printed by calling
133: .it putchar.
134: .sh "SEE ALSO"
135: putchar (III)
136: .sh BUGS
137: Very wide fields (>128 characters) fail.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.