一 基本用法
格式化控制符:%d %c %ld %lf
意思是:相当于在要输出的语句里面挖了一个坑,也就是在内存中开辟空间,然后再那个坑的位置(也就是开辟好的空间),填上你想要显示的值
printf("%d\n",age);
printf("%c\n",ch);
printf("%f\n",f);
printf("%ld\n",lNum);
printf("%lf\n",d);
%d:代表挖一个int类型的坑,然后你需要给我填入一个int类型的数据
%c:代表挖一个char类型的坑,然后你需要给我一个char类型的数据
%f:代表挖一个float类型的坑,然后你需要给我一个float类型的数据
%ld:代表挖一个long类型的坑,然后你需要给我一个long类型的数据
%lf: 代表挖一个double类型的坑,然后你需要给我一个double类型的数据
二 详解
%d:输出int类型
%md:m代表这个整数占多少位,但是还是输出int 不足部分以空格补齐
如果m是负数,那么空格在后面补齐
如果实际的位数>=m,那么按原样输出
%0md:(可能会用,重点)
m代表这个整数占多少位,而且输出的还是int不足部分以0补齐
如果实际位数 >= m ,那么还是按原样输出
前面不能加负号
%.nf:(重点)
n代表输出几位小数,但是还是输出float
代表保留小数点后几位,然后保留的最后一位会根据它的下一位做四舍五入
例: 10.3333
如果用%.2f输出,会输出 10.33
10.3352
如果用%.2f输出,会输出 10.34
%m.nf:(非重点,了解有这回事)
m代表这个小数一共占用几列,n代表保留几位小数,不足部分以空格补齐
如果实际位数或者保留小数点后几位的位数 大于或者等于m,那么以实际位数或者保留小数后几位的位数输出
tips: 代码例子如下
#include <stdio.h>
int main(int argc, const char * argv[]) {
//prinrf基本用法
//%d
int age = 14;
printf("你好,今年我%d岁\n",age);
//%c
char ch = 'a';
printf("%c\n",ch);
//%f 默认输出小数点后6位
float f = 10.3333f;
printf("%f\n",f);
//%ld
long lNum = 20000l;
printf("lNum = %ld\n",lNum);
//%lf
double d = 32103.32312;
printf("%lf\n",d);
//printf函数的详解
//%md的情况
/*
//因为要占两位,所以打印空格3
printf("%d\n",3);//打印3
printf("%2d\n",3);//打印 3
printf("%5d\n",3);//打印 3
printf("%-2d\n",3);//打印3空格
printf("%3d\n",324);//那就是3位,324
printf("%3d\n",1234);//原样输出 1234
*/
//%0md的情况
/*
printf("%02d\n",3);//打印03
printf("%05d\n",3);//打印00003
printf("%02d\n",3);//打印30
printf("%05d\n",3);//打印00003
printf("%03d\n",345);//打印345
printf("%03d\n",12345);//打印12345
*/
//%.mf的情况
/*
float lf = 103.3333f;
printf("%.2f\n",lf);//打印103.33
float f2 = 10.3355667;
printf("%.2f\n",f2);//打印10.34
*/
//%m.nf的情况
/*
float f1 = 103.33;
printf("%10.2f\n",f1);//一共占用10列,4个空格所以是输出的 103.33
printf("%5.2f\n",f1);//输出103.33
float f2 = 103.335678;
printf("%2.2f\n",f2);//输出103.34
*/
return 0;
}