13.1.1 格式化输入输出

这是我们第一天学c就接触的东西:

我们今天就来彻底研究一下这个格式串字符到底有多少细节.

一.flag

示例如下:

1.

2.

3.

或者均可

4.

5.(注意,0和-不能组合在一起,因为我们减号的意思是左对齐,那都左对齐了肯定没有地方去填充0了)

6.

二.width或.prec

1.

(整个输出占据九个字符,并保留小数点后两位)

(前面有三个空格)

2.

(6用来代替*,这样子*可以是一个变量,提高了我们格式的灵活性)

(前面有三个空格)

三.hlL

如果我们做一个这样的输出,我们的编译器会给我们一个warning.我们先不管,运行得到结果57.原因是因为12345是以int类型传入的(4字节),但%hhd只会读取最低的1个字节,即8位.12345的二进制最低8位对应十进制57,因此输出的结果是57.(老师用十六进制做解释).我们可以在前面加个char做强制类型转换,这样就没有warning了.

其他的可以后面自己试试.

四.type

1.printf

%n的意思是,我的输入输出到%n前,已经输入输出了多少个字符,然后填到那个指针所指的变量里头.

2.scanf

1)

它把我们第一个输入的123给跳过了.

2)

3)

五.printf和scanf的返回值

我们可以来试一下:

运行得到结果:

第一个1的意思是我们的scanf读到了一个"1234",而5的意思是我们的printf输出了五个字符(包括'\n').

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值