%d------整型
%f------浮点数
输入%lf输出%f------高精度浮点数(比较特殊)
%s------字符串
%c------字符
%p------指针
%e------科学计数法
%g------小数或科学计数法
更加全面:
%d 整型int
%ld 长整型long
%lld 长长整型long long (int)
%hd 短整型short int
%u 无符号整型unsigned int
%hu 无符号短整型unsigned short int
%lu 无符号长整形unsigned long int
%llu 无符号长长整型unsigned long long
%f 浮点型float
输入%lf,输出%f 高精度浮点型double
%e(E) 以指数形式表示的浮点型
%m.nf 可控制输出小数位数
%c 字符型char
%s 字符串
%o 以八进制输出
%x 以16进制输出
%p 变量地址
%i 结构体输出
如何控制输出的格式%m.nf 占位输出 位数不够,自动补足
%02d 右对齐输出,位数不够补0;
%2d右对齐输出,位数不够补/0;
%.2f输出两位小数,左对齐输出,位数不够自动补0;
(这里不含有四舍五入,只有保留位数,想要四舍五入也很简单,先乘以10^(n-1)然后加0.5强制转化就行了)
我们来实操一下:你觉得这样会输出什么?
#include <stdio.h>
int main()
{
printf("%09d\n",2345);
printf("%9d\n",2345);
printf("%.2f\n",2345.235);
printf("%.2d\n",2345.235);
return 0;
}
我们来看一下输出:是不是很好理解了,看最后一个输出,这个printf的函数我丢给他一个浮点数,却要他输出一个%.2d,是不是输出错误了,所以平时要保持这优秀而严谨的习惯。
000002345
2345
2345.24
1537761952
我们来看一下输出:是不是很好理解了,看最后一个输出,这个printf的函数我丢给他一个浮点数,却要他输出一个%.2d,是不是输出错误了,所以平时要保持这优秀而严谨的习惯。