C语言第五天,printf函数详解
一、使用公式:
printf("XXX占位1 XXX占位2 XXX占位3",替换1,替换2,替换3);
1.printf的第一个参数是字符串。
2.printf是一个变参函数。(参数的数量和类型不确定)
3.占位符的类型和数量需要与后续的参数类型和数量对应
4.第一个参数包含需要输出的字符以及需要被替换的占位符
5.第一个参数包含需要输出的字符以及需要被替换的占位符
二、整型类型的占位符
printf是一个可变参数函数,在C语言中将参数传入函数的可变参数中,变量会发生自动类型的提升。
占位符(转换规范):1.有符号整型(转换操作d),char,short,int使用%d,long使用%ld,long long使用%lld.
2.无符号整型(转换操作u),unsigned char,unsigned short,unsigned int使用%u,unsigned long使用%lu。unsigned long long使用%llu。
3.浮点类型(转换操作f,e,E),float会被提升为double,double不发生变化。
结论:float,double均使用%f,转换操作e,E与f类似,但是使用e计数法。e与E的区别为,一个使用小写e,一个使用大写E
4.转换操作o,x,X,
#include<stdio.h>
int main()
{unsigned int n=123456;
printf("%u\n",n);//输出为十进制
printf("%o\n",n);//输出为八进制
printf("%x\n",n);//输出为十六进制,小写字母
printf("%X\n",n);//输出为十六进制,大写字母
return0;}
#include<stdio.h>
int main()
{ unsigned char c1=255;
unsigned long long s1=65535525621;
unsigned int n1=4294967295;
printf("%u\n",c1);
printf("%llu\n",s1);
printf("%u\n",n1);
return 0;}
输出结果:255
65535525621
4294967295
三、转换规范
长度指示符:
d只能识别到整型的4个字节,所以无法正确识别long long,所以打印的数值也会不准确
长度指示符在转换操作前面,用于加宽或缩短转换操作所获取的二进制数据长度。
在转换操作前增加一个l长度指示符,可以将转换操作获取的二进制长度升为更高一级的类型长度。
在转换操作前增加一个h长度指示符,可以将转换操作获取的二进制长度降为更低一级的类型长度。
精度:
1.整型转换操作中,可以控制数值位数
2.浮点转换操作中,可以控制小数点后的位数
eg.
#include<stdio.h>
int main()
{
int un = 456;
double df = 123.456789;
printf("%.6d\n", un);//6位数
printf("%f\n", df);//正常的浮点
printf("%.0f\n", df);//小数点数位为0的浮点
printf("%.4f\n", df);//小数点后数位为4的浮点
return 0;
}
结果:
000456
123.456789
123
123.4568
最小字段宽度:
小数点也算一位
标志字符:
标志0:使用最小字段宽度时,如果指定标志0,则会用0代替空格补齐最小宽度
eg.使用上面图片中的例子,printf("%06d\n",un);
则结果为001234
标志-:让打印结果左对齐
标志+:让内容总产生符号,正数用+号,负数用-号
标志#:八进制前加上0,十六进制前加上0X

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」