当前位置:   article > 正文

printf函数详解

printf函数

一、 printf函数

printf是一个库函数,它来自标准库stdio.h 头文件中,它的使用方法有很多种,其作用是向标准输出设备(一般指计算机屏幕)输出信息,print字面意思就是打印,f则是format,名为格式,合起来便是格式化打印,如下所示。

1.1 直接打印

#include<stdio.h>
int main()
{
  printf("hello world");
  printf("hello c");
  printf("11,12,13,14");
  printf("3.4,1.2,45.3");
  printf("a,b,c");
  return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这种写法比较死板

1.2 随时换行

我们知道printf函数打印完之后光标会停留在本行,不会自动跳转到下一行可以使用字符\n进行换行,如下所示。

#include<stdio.h>
int main()
{
	printf("hello world\n");
	printf("hello\nworld");
	printf("hello");
	printf("\n");
	printf("world");
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

1.3 使用占位符进行打印

#include<stdio.h>
int main()
{
	printf("%d\n", 4);
	printf("%c", 'a');
	printf("%f\n", 3.14f); //3.14f是单精度浮点数,默认是双精度浮点数。
	printf("%lf\n", 2.6);  //双精度浮点数
	printf("%s", "hello world\n");
	printf("%zd %u\n", 5, 10); //打印无符号整型

	//也可以打印变量
	int a = 4;
	int b = 5;
	float c = 3.14f;
	double d = 2.4;
	char e = 'a';
	printf("%d\n", a);
	printf("%d,%d\n", a,b);
	printf("%f\n", c);
	printf("%lf\n", d);
	printf("%f,%lf\n", c, d);
	printf("%d\n", e); //字符型也可以使用%d打印,结果是该字符的ASCll码值。
	printf("%c\n", e);

	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

1.4限定宽度

printf函数可以限定占位符的最小宽度

#include<stdio.h>
int main()
{
	int a = 25;
	printf("%3d\n", a);  // 输出" 25"
	printf("%5d\n", a);  // 输出"   25"
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果显示

在这里插入图片描述

上面的实例中,3d和5d分别表示最小宽度至少是3位和5位,如果不足,默认在数字前面补空格,差几位补几位,默认输出的值是右对齐,如果希望左对齐,在数值后面补空格,在%后面加一个-号就可以了,如下所示。

#include<stdio.h>
int main()
{
	int a = 25;
	printf("%-3d\n", a);  // 输出"25 "
	printf("%-5d\n", a);  // 输出"25   "
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果显示

在这里插入图片描述
对于小数而言也可以限制最小宽度,如下所示。

#include<stdio.h>
int main()
{
	double d = 5.25;
	printf("%12lf\n", d); //输出"    5.250000"  限制最小宽度为12位,小数点后默认保留6位,.和5为两位,再补4位空格,总共12位。
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果显示

在这里插入图片描述

1.5 限制小数位数

单精度浮点型和双精度浮点型默认小数点后保留6位,可以使用占位符来限制小数的位数,如下所示。

#include<stdio.h>
int main()
{
	float f = 3.14f;
	double d = 2.5;
	printf("%f\n",f);     //输出"3.140000"
	printf("%.2f\n", f);  //输出"3.14"
	printf("%lf\n", d);   //输出"2.500000"
	printf("%.2lf\n", d); //输出"2.50"
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

结果显示

在这里插入图片描述

1.6 默认显示+和 -

默认情况下,printf函数只显示-号,而不显示+号,想要显示+号,可以在%后面加一个+号,如下所示。

#include<stdio.h>
int main()
{
	printf("%d\n", 5);
	printf("%+d\n", 5);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果显示

在这里插入图片描述
最小宽度和小数位数都可以通过*号来代替,在printf函数内传入参数,如下所示。

#include<stdio.h>
int main()
{
	double d = 5.2;
	printf("%*.*lf\n", 6, 2, d);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果显示

在这里插入图片描述

1.7 输出部分字符串

%s是用来输出字符串,默认是输出全部字符串,如果想要输出开头的部分,可以使用%.*s来指定输出的长度,*代表一个数字,表述要输出的长度,如下所示。

#include<stdio.h>
int main()
{
	printf("%s", "hello world\n");
	printf("%.*s\n",5, "hello,world");
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果显示

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/899873
推荐阅读
  

闽ICP备14008679号