printf函数
占位符列举(蓝色字体为常用占位符)
•
%a
:⼗六进制浮点数,字⺟输出为⼩写。
•
%A
:⼗六进制浮点数,字⺟输出为⼤写。
• %c :字符。
• %d :⼗进制整数。
• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
•
%E
:使⽤科学计数法的浮点数,指数部分的
E
为⼤写。
•
%i
:整数,基本等同于
%d
。
• %f :⼩数(包含 float 类型)。
•
%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、最小宽度
%5d
表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。
输出的值默认是右对齐,即输出内容前⾯会有空格;如果希望改成左对⻬,在输出内容后⾯添加空
格,可以在占位符的
%
的后⾯插⼊⼀个 负
号。
2、限定小数位
输出⼩数时,有时希望限定⼩数的位数。举例来说,希望⼩数点后⾯只保留两位,占位符可以写
成
%.2f
。
scanf函数
有关函数的介绍
scanf
处理数值占位符时,会⾃动过滤空⽩字符,包括空格、制表符、换⾏符等。
scanf
的返回值是⼀个整数,表⽰成功读取的变量个数。如果没有读取任何项,或者匹配失败,则返回 0 。如果在成功读取任何数据之前,发⽣了读取错误或 者遇到读取到⽂件结尾,则返回常量 EOF即为负一。按
ctrl+z
,可以提前结束输⼊。
常⽤的占位符
•
%c
:字符。
•
%d
:整数。
•
%f
:
float
类型浮点数。
•
%lf
:
double
类型浮点数。
•
%Lf
:
long double
类型浮点数。
•
%s
:字符串。
•
%[]
:在⽅括号中指定⼀组匹配的字符(⽐如
%[0-9]
),遇到不在集合之中的字符,匹配将会
停⽌。
特殊字符
上⾯所有占位符之中,除了
%c
以外,都会
⾃动忽略起⾸的空⽩字符
。
%c
不忽略空⽩字符,总是返 回当前第⼀个字符,⽆论该字符是否为空格。
如果要强制跳过字符前的空⽩字符,可以写成
scanf(" %c", &ch)
,即
%c
前加上⼀个空格,表
⽰跳过零个或多个空⽩字符。
下⾯要特别说⼀下占位符
%s
,它其实不能简单地等同于字符串。它的规则是,从当前第⼀个⾮空白字符开始读起,
直到遇到空⽩字符
(即空格、换⾏符、制表符等)为⽌。