int printf(const char *format,[argument]);
format 参数输出的格式,定义格式为:
%[flags][width][.perc] [F|N|h|l]type
规定数据输出方式,具体如下:
1.type 含义如下:
type | 含义 | 例子 | 输出 |
d | 有符号10进制整数 |
|
|
i | 有符号10进制整数 |
|
|
o | 有符号8进制整数 |
|
|
u | 无符号10进制整数 |
|
|
X/x | 有符号16进制整数 |
|
|
F/f | 浮点数 | %f,1.23 | “1.2300000” |
E/e | 用科学表示格式的浮点数 |
|
|
g | 使用%f和%e表示中的较精确者来表示浮点数,且格式化后多余的不会有多余的0 | %g,1.23 | “1.23” |
G | 同g格式,但表示为指数 |
|
|
c | 单个字符 |
|
|
s | 字符串 |
|
|
% | 显示百分号本身 |
|
|
p | 显示一个指针,near指针表示为:XXXX |
|
|
far | 指针表示为:XXXX:YYYY |
|
|
n | 相连参量应是一个指针,其中存放已写字符的个数 |
|
|
|
|
|
|
2.flags 规定输出格式,取值和含义如下:
格式 | 意义 | 例子 | 输出 |
无 | 右对齐,左边填充0和空格 |
|
|
+ | 左对齐,右边填充空格 |
|
|
- | 在数字前增加符号 + 或 - |
|
|
一个空格 | 只对负数显示符号 |
|
|
# | type=c,s,d,i,u时没有影响 |
|
|
type=o,x,X时,在数值前增加'0'字符 |
|
| |
type=e,E,f时,总是使用小数点 |
|
| |
type=g,G时,除了数值为0外总是显示小数点 |
|
|
3.width 用于控制显示数值的宽度,取值和含义如下
width | 含义 | 例子 | 输出 |
n(n=1,2,3...) | 宽度至少为n位,不够以空格填充 |
|
|
0n(n=1,2,3...) | 宽度至少为n位,不够左边以0填充 |
|
|
* | 格式列表中,下一个参数还是width |
|
|
4.prec 用于控制小数点后面的位数,取值和含义如下:
prec | 含义 | 例子 | 输出 |
无 | 按缺省精度显示 |
|
|
0 | 当type=d,i,o,u,x时,没有影响 |
|
|
type=e,E,f时,不显示小数点 |
|
| |
n(n=1,2,3...) | 当type=e,E,f时表示的最大小数位数 |
|
|
type=其他,表示显示的最大宽度 |
|
| |
* | 格式列表中,下一个参数还是width |
|
|
5.F|N|h|l 表示指针是否是远指针或整数是否是长整数
width | 含义 | 例子 | 输出 |
F | 远指针 |
|
|
n | 近指针 |
|
|
h | 短整数或单精度浮点数 |
|
|
l | 长整数或双精度浮点数 |
|
|
附:
\a 报警(ANSI C)
\b 退格
\f 走纸
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\\ 反斜杠(\)
\' 但引号(')
\" 双引号(")
\? 问号(?)
特此注明:CString 的Format函数并不完全支持上述格式,但如果支持,意义同上。