二、C语言数据类型与变量(scanf和printf (1))

本章学习链接如下:

二、C语言数据类型与变量(scanf和printf (2))

 二、C语言数据类型与变量(scanf和printf (3))

二、C语言数据类型与变量(scanf和printf (4)完)

在之前的学习中我们已经运用了printf,\n,#include<stdio.h>,等等来书写我们的代码,\n我们之前已经了解到了是转义字符,起到换行作用,可在一句末尾换行,也可以在需要换行的文本中间换行。

1.printf 含义

printf( ) 的作⽤是将参数文本输出到屏幕。  f 代表 format (格式化),表示可以定制输出文本的格式。
printf( )不会自动换行,就算是写两行不同的printf()也不会自动换行
printf( )是在标准库的头文件<stdio.h>里面定义的,如果想使用printf ( ),就必须在代码开头添加#include<stdio.h>
#include<stdio.h>
int main()
{
	printf("hello\n world\n");//文本内部也可以换行
	printf("hello world\n");
	return 0;
}

2.占位符,如%d,%c,%s,%f,%lf等的含义

占位符:先用这个符号占着位置,具体内容后面输入

1)占位符列举

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

比如,我想打印一段话,我叫Xiaoming,今年15岁,身高165.5cm,A型血;

                                       我叫Lincaicai,今年14岁,身高170cm,O型血。

我们可以看到,并没有输出我们想要的数165.5,这是由于C语言中默认浮点数%f,精确到小数点后六位,如果我们想控制小数点的输出位数,则用%.1f用做输出1位小数的占位符。见下段。

2)需要输出的具体字符串用双引号“ ”引起来

3)单个字符用单引号' '

4)数字不需要引号

#include<stdio.h>
int main()
{
	printf("我叫%s,今年%d岁,身高%fcm,%c型血;\n" , "Xiaoming", 15, 165.5, 'A');
	printf("我叫%s,今年%d岁,身高%dcm,%c型血。" ,"Lincaicai", 15, 170,'O');
	return 0;
}

输出结果:

我叫Xiaoming,今年15岁,身高165.500000cm,A型血;
我叫Lincaicai,今年15岁,身高170cm,O型血。

3.如何控制输出的浮点数的小数点后几位,如%.2f表示输出小数点后两位。

#include<stdio.h>
int main()
{
	printf("我叫%s,今年%d岁,身高%.1fcm,%c型血;\n" , "Xiaoming", 15, 165.5, 'A');
	printf("我叫%s,今年%d岁,身高%dcm,%c型血。" ,"Lincaicai", 15, 170,'O');
	return 0;
}

输出结果:

我叫Xiaoming,今年15岁,身高165.5cm,A型血;
我叫Lincaicai,今年15岁,身高170cm,O型血。

4.限制占位符输出的最小宽度

printf()中可以限定占位符的最小宽度

%12d 表示这个占位符的宽度至少为12位。如果不满12位,对应的值的前面会添加空格.
比如当我们输出一个浮点数,默认显示精度是后6位,当我们输入如下代码:
输出结果为“  123.120000”前面有两个空格,这是因为C语言中默认右对齐。
如果想左对齐,可以添负号写成%-12d
 
#include<stdio.h>
int main()
{
	printf("%12f",123.12);//输出“  123.120000”
	return 0;
}
#include<stdio.h>
int main()
{
	printf("%-12f", 123.12);//输出“123.120000  ”
	return 0;
}

5. 限制占位符输出的最小宽度和小数精度可以同时使用

形如%6.2f,即可以输出小数点后两位,且总体宽度为6的浮点数,小数点占一位宽度
#include<stdio.h>
int main()
{
	printf("%6.2f", 123.12);//输出“123.12”
	return 0;
}

6. 限制占位符输出的最小宽度和小数精度可以同时使用,这两个值可以用星号*代替,后面再输入

如下图代码所示,需要的宽度和精度数值是6和2,%6.2f

#include<stdio.h>
int main()
{
	printf("%*.*f",6,2, 123.12);//输出“123.12”
	return 0;
}

7.printf()里的正负号问题

默认情况下, printf() 不对正数显示 + 号,只对负数显示  - 号。如果想让正数也输出 + 号,可
以在占位符的 % 后⾯加⼀个 + 。在%后面加+号 ,可以确保输出的数带有符号,而不是%后面写正号就是整数,负号就是负数

8.限制输出的字符串的宽度%.数字s 

使用形如%.3s 的占位符,3代表想要输出的字符串的宽度是3,可以是任意正整数,空格也算宽度

#include<stdio.h>
int main()
{
	printf("%.3s\n", "hello");//输出“hel”
    printf("%.3s\n", "he llo");//输出“he ”

	return 0;
}

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林采采学编程+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值