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 

 

 

 

  

 

 

 
 
 

 

posted @   纯爱暴打ntr  阅读(1095)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示