C语言printf函数详解.doc
文本预览下载声明
功 能:
产生格式化输出的函数。
用 法:
printf(格式控制字符串,参数1,参数2,… ,参数n);格式控制字符串定义为:%[flags][width][.perc][F|N|h|l]type
type
d????? 有符号10进制整数
i????? 有符号10进制整数
o????? 无符号8进制整数
u????? 无符号10进制整数
x????? 无符号的16进制数字,并以小写abcdef表示
X????? 无符号的16进制数字,并以大写ABCDEF表示
f????? 浮点数
E/e??? 用科学记数法表示浮点数
g? ? ? 用%f和%e表示中,总的位数最短的来表示浮点数。G同g格式,但表示为指数
c????? 单个字符
s????? 字符串
S????? wchar_t字符(宽字符)类型字符串
%????? 显示百分号本身
p????? 显示一个指针,near指针表示为:XXXX,far指针表示为:XXXX:YYYY
n????? 相连参量应是一个指针,其中存放已写字符的个数
??? flags:规定输出格式
无 ? ? 右对齐,左边填充0和空格
-????? 左对齐,右边填充空格
+????? 在数字前增加符号+或-
0 ? ?? 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-)
空格 ? 输出值为正时冠以空格,为负时冠以负号
#????? 当type=c,s,d,i,u时没有影响;当type=o,x,X时,分别在数值前增加0,0x,0X;?????????? 当type=e,E,f时,总是使用小数点;当type=g,G时,除了数值为0外总是显示小数点。
width:用于控制显示数值的宽度
n(n=1,2,3...)?? 宽度至少为n位,不够以空格填充
0n(n=1,2,3...)? 宽度至少为n位,不够左边以0填充
*?????????????? 格式列表中,下一个参数还是width
prec:用于控制小数点后面的位数
无????????????? 按缺省精度显示
0?????????????? 当type=d,i,o,u,x时,没有影响;当type=e,E,f时,不显示小数点
n(n=1,2,3...)?? 当type=e,E,f时,表示的最大小数位数
type=其他?????? 表示显示的最大宽度
.*????????????? 格式列表中,下一个参数还是width
F|N|h|l
F????? 远指针
n????? 近指针
h????? 短整数或单精度浮点数
l????? 长整数或双精度浮点数
函数返回值:printf函数的一般形式为:
int printf(const char *format,[argument]);??? 说明printf函数类型为整型,其返回值是整型值。其值实际为printf控制输出的字符数。
例如:
int a,b;
a=printf(gelin\n); //a的值为6
b=printf(the value of printf is:%d,a); //b的值为24
printf(\n%d\n,b);
以上程序将会输出:
?
程序举例:
例一
#define C gelin
int main(void)
{
int a=12345;
float b=5
char e,d,f;
scanf(%c%c%c,e,d,f);
//分别演示:%d、%4d、%.4d、%d%*d%d
printf(int is:%d\n,a);
//分别演示:%d、%9d、%.9d、%8.4d、%-8.4d、%+8.4d
printf(float is:%f\n,b);
//分别演示:%f、%8f、%.4f、%8.4f、%-8.4f
printf(char is:%s\n,C);
//分别演示:%s、%8s、%.4s、%8.4s、%-8.4s
return 0;
}例二
printf也可以这样用:
printf(123\n456\n789\n);
输出:
123
456
789
注意:
printf(123\n 456\n 789\n);的输出结果与printf(123\n);printf(456\n);printf(789\n);相同。
因此输出多行时,也并不需要每行调用一
显示全部