一、定义与基本用法
printf函数英文名全称叫print format,即按照格式打印数据,它的基本用法是将参数文本输出到屏幕。
#include <stdio.h>
int main()
{
printf("hello C");
return ;
}
运行结果:
printf函数不会在结尾自动添加换行符(\n),运行结束后,光标就停留在输出结束位置,不会自动换行。如果文本需要换行,可以通过在结尾插入换行符来实现。
另外,printf是在标准库的头文件stdio.h定义的,因此,在使用之前,必须在源文件头部包含这个头文件,即#include <stdio.h>。
二、占位符
printf函数可以在输出文本中指定占位符,所谓“占位符”,就是这个位置可以用它后面的值代⼊,实现数据可变(后面值和前面占位符个数、类型一一对应)。占位符的第⼀个字符⼀律为%,第二个字符表示占位符的类型,例如:%d → 打印整形、%c → 打印字符、%f → 打印小数(float、double两种类型)、 %p → 打印指针… …
#include <stdio.h>
int main()
{
printf("%s says it is %d o'clock\n", "lisi", 21);
return 0;
}
运行结果:
三、输出格式
printf函数可以定制占位符的输出格式,主要包括以下几种。
3.1 限定宽度
这里的限定宽度是指最小宽度,如果占位符的宽度比限定宽度要小,对应的值的前⾯会添加空格;如果占位符的宽度比限定宽度大,则正常打印。输出的值默认是右对齐,可以在占位符的%的后面插入一个-号。
#include <stdio.h>
int main()
{
printf("%d\n", 123);
printf("%5d\n", 123);
printf("%5d\n", 1234567);
return 0;
}
运行结果:
对于浮点数也是一样,浮点数后面小数点默认6位
#include <stdio.h>
int main()
{
printf("%f\n", 123.45);
printf("%12f\n", 123.45);
return 0;
}
运行结果:
3.2 打印显示正负号
默认情况下,printf函数不对正数显示‘+’号,只对负数显示‘-’号。如果想让正数也输出‘+’号,可以在占位符%的后⾯加⼀个‘+’号。
#include <stdio.h>
int main()
{
printf("%d\n", 45);
printf("%d\n", -45);
printf("%+d\n", 45);
return 0;
}
运行结果:
3.3 限定小数位数
输出小数(浮点数)时,默认情况下是小数点后6位,有时候我们希望小数点后面保留2位,占位符可以写成%.2f,一般的,可以写成%.[m]f,m为正整数,表示我们想保留的小数位数。
#include <stdio.h>
int main()
{
printf("%f\n", 3.1415926);
printf("%.3f\n", 3.1415926);
return 0;
}
运行结果:
这种写法也可以与限定宽度占位符结合使用,最小宽度和小数位数这两个限定值,都可用*代替, 通过printf()参数传入。
#include <stdio.h>
int main()
{
printf("%6.2f\n", 3.1415);
printf("%*.*f\n", 6, 2, 3.1415);
return 0;
}
运行结果:
3.4 输出部分字符串
%s 占位符默认输出字符串是全部输出。如果只想输出开头的部分,可以用%.
[m]s指定输出长度,其中[m] 代表⼀个数字,表示所要输出的长度。
#include <stdio.h>
int main()
{
printf("%s\n", "hello world");
printf("%.5s\n", "hello world");
return 0;
}
运行结果:
好了,以上就是关于printf函数的介绍,除了printf外,我们还有scanf函数,后面也会对其进行讲解,感兴趣的小伙伴可以点点关注。