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函数并不完全支持上述格式,但如果支持,意义同上。