printf 的介绍

printf 的介绍

printf 是指格式化输出函数,主要功能是向标准输出设备按规定格式输出信息。printf 是C语言标准库函数,定义于头文件 <stdio.h>。printf 函数的一般调用格式为:printf(“<格式化字符串>”, <参量表>)。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

基本用法

printf() 的作用是将参数文本输出到屏幕。
例如:在屏幕上输出“Hello World”

#include <stdio.h>
int main()
{
	printf("Hello World");
	return 0;
}

printf() 不会在行尾自动添加换行符,运行结束后,光标停留在输出结束的地方,若想换行需要手动添加换行符 \n。

#include <stdio.h>
int main()
{
	printf("Hello World\n");
	return 0;
}

如果文本内部有换行,也是通过插入换行符来实现,例如:

#include <stdio.h>
int main()
{
	printf("Hello World\n");
	printf("Hello\n");
	printf("World\n");
	return 0;
}

占位符

printf() 可以在输出文本中指定占位符。所谓“占位符”,就是这个位置可以用其他值代入。
例如:整数3替换%d

//输出There are 3 apples
#include <stdio.h>
int main()
{
	printf("There are %d apples\n", 3);
	return 0;
}

输出文本中可以有多个占位符

#include <stdio.h>
int main()
{
	printf("%s says it is %d o'clock\n", "zhangsan", 21);
	return 0;
}

第一个%s是字符串占位符,第二个%d是整数占位符
printf() 参数与占位符是一一对应关系,如果参数个数少于占位符,printf()可能会输出内存中的任意值。

占位符举例

•%a :⼗六进制浮点数,字⺟输出为⼩写。
•%A :⼗六进制浮点数,字⺟输出为⼤写。
•%c :字符。
•%d :⼗进制整数。
•%e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
•%E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
•%i :整数,基本等同于 %d 。
•%f :⼩数(包含 float 类型和 double %lf类型)
•%g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e为⼩写。
•%G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
•%hd :⼗进制 short int 类型。
•%ho :⼋进制 short int 类型。
•%hx :⼗六进制 short int 类型。
•%hu :unsigned short int 类型。
•%ld :⼗进制 long int 类型。
•%lo :⼋进制 long int 类型。
•%lx :⼗六进制 long int 类型。
•%lu :unsigned long int 类型。
•%lld :⼗进制 long long int 类型。
•%llo :⼋进制 long long int 类型。
•%llx :⼗六进制 long long int 类型。
•%llu :unsigned long long int 类型。
•%Le :科学计数法表⽰的 long double 类型浮点数。
•%Lf :long double 类型浮点数。
•%n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。
•%o :⼋进制整数。
•%p :指针。
•%s :字符串。
•%u :⽆符号整数(unsigned int)。
•%x :⼗六进制整数。
•%zd : size_t 类型。
•%% :输出⼀个百分号。

输出格式

###限定宽度
printf()允许限定占位符的最小宽度
对于整数例如:

#include <stdio.h>
int main()
{
	printf("%5d\n", 123);//输出为“  123”
	return 0;
}

%5d表示占位符的宽度至少是5位,若不满5位,对应的值前面添加空格。输出默认右对齐,如果改成左对齐,需要在占位符的%的后面插入一个“-”号。
对于小数例如:

//输出“  123.450000”
#include <stdio.h>
int main()
{
	printf("%12f\n", 123.45);
	return 0;
}

%12表示输出浮点数至少要占据12位。由于小数精度默认小数点后6位,所以输出结果的头部添加2个空格。
###显示正负号
默认情况下,printf() 不对正数显示+号,只对负数显示-号,如果想让正数也显示,需要在占位符%后面加一个+。
例如:

#include <stdio.h>
int main()
{
	printf("%+d\n", 12);
	printf("%+d\n", -12);
	return 0;
}

###限定小数位数
输出小数时,希望小数点后只保留两位,则占位符可以写成“%.2f”。
例如:

//输出Number is 0.50
#include <stdio.h>
int main()
{
	printf("Number is %.2f\n", 0.5);
	return 0;
}

可以与限定宽度占位符结合使用。
例如:

#include <stdio.h>
int main()
{
	printf("%6.2f\n", 0.5);
	return 0;
}

%6.2表示输出字符串最小宽度为6,小数位数为2。
最小宽度和小数位数这两个限定值都可以用*代替。
例如:

#include <stdio.h>
int main()
{
	printf("%*.*f\n", 6, 2, 0.5);//等同于printf("%6.2f\n", 0.5);
	return 0;
}

***输出部分字符串
%s占位符用来输出字符串,默认是全部输出。如果想输出一部分,可以用%.[m]s指定输出的长度。
例如:

#include <stdio.h>
int main()
{
	printf("%.5s\n", "Hello World");
	return 0;
}

占位符%.5s表示只输出字符串的前5个字符,即“hello”。

  • 19
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值