C语言之printf函数

一 基本用法

格式化控制符:%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;

}