C语言printf函数的详解

本文详细介绍了C语言中printf函数的使用,包括基本用法、占位符的种类(如%d,%f,%s等)、如何限定宽度、显示正负号、控制小数位数以及输出部分字符串的方法。
摘要由CSDN通过智能技术生成

目录

一:printf

1.1基本用法

1.2占位符

1.3占位符列举

1.4 输出格式

1.4.1限定宽度

1.4.2总是显⽰正负号

1.4.3 限定⼩数位数

1.4.4 输出部分字符串


引言:在本文会详细介绍占位符和printf的输出格式。包括怎么限定宽度、正负号、限定小数位数以及怎么输出部分字符串

一:printf

1.1基本用法

作用:打印信息在屏幕上

意思:printf打印,format格式(按格式打印)

2:printf() 是在标准库的头⽂件 stdio.h 定义的。使⽤这个函数之前,必须在源码⽂件头部引⼊这
个头⽂件。

#include <stdio.h>

int main()

{
	printf("hello");
	printf("hello\n");
	printf("abcd\nfe");
	//换行的输出结果不同
	return 0;
}

1.2占位符

语法格式==>%类型

1:

#include<stdio.h>

int main()
{
	printf("%d个苹果\n", 3);//整数3替换%d
	return 0;
}

占位符的这个位置可以用其他值来代替。

2.    printf() 参数与占位符是⼀⼀对应关系,如果有 n 个占位符, printf() 的参数就应该有 n +
1 个。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值。

#include<stdio.h>
int main()
{

	printf("%s says it is %d o'clock\n", "lisi", 21);
	//可以使用多个占位符
	return 0;
}

如图,有两个占位符,三个参数。

1.3占位符列举

•%a :⼗六进制浮点数,字⺟输出为⼩写。
• %A :⼗六进制浮点数,字⺟输出为⼤写。
• %c :字符。
• %d :⼗进制整数。
• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
• %i :整数,基本等同于 %d 。
• %f :⼩数(包含 float 类型和 double 类型)。//float-%f    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 类型。
• %% :输出⼀个百分号。

1.4 输出格式


printf() 可以定制占位符的输出格式。

1 限定宽度
2 总是显⽰正负号
3 限定⼩数位数
4 输出部分字符串

1.4.1限定宽度

#include<stdio.h>

int main()
{

	printf("%5d\n", 123);
	//5指最小宽度,向右对齐,不够5位就补空格
	printf("%-5d\n", 123);//左对齐
	return 0;
}

printf() 允许限定占位符的最⼩宽度。

对于⼩数,这个限定符会限制所有数字的最⼩显⽰宽度。

#include<stdio.h>

int main()
{
	printf("%lf\n", 123.45);
	printf("%12lf\n", 123.45);
	//小数点后面有6位,12是宽度,右对齐
	return 0;
}

1.4.2总是显⽰正负号

通常情况下,printf()只会打印负号。希望显示正负号,就在%后加+号。

如图: %+d 可以确保输出的数值,总是带有正负号。

1.4.3 限定⼩数位数

输出⼩数时,有时希望限定⼩数的位数。

#include<stdio.h>

int main()
{

	printf("%.3lf\n", 123.45);//输出123.450
	return 0;
}

如果希望⼩数点后⾯输出3位( 123.450 ),占位符就要写成 %.3lf 。

如果是5位(123.45000),就要%.5lf。

这种写法可以与限定宽度占位符,结合使⽤。

#include<stdio.h>

int main()
{

	printf("%12.6lf\n", 123.45);//输出12宽度,6位小数
	return 0;
}

最⼩宽度和⼩数位数这两个限定值,都可以⽤ * 代替,通过 printf() 的参数传⼊。

等同于printf(“%12.1lf\n”,123.45);

1.4.4 输出部分字符串

注意:是字符串

%s 占位符⽤来输出字符串,默认是全部输出。

如果只想输出开头的部分,可以⽤ %.[m]s 指定输出的⻓度,其中 [m] 代表⼀个数字,表⽰所要输出的⻓度。

#include<stdio.h>

int main()
{
	//输出abcde
	printf("%.5s\n", "abcdef");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值