前言
- printf()
- scanf()
天天用的老朋友了,但是,平时都是用到哪,学到哪,具体怎么用的6呢?
正文
printf()
- 格式:% [flags] [width] [.prec] [hlL] type
- Flag
Flag | 含义 |
---|---|
- | 左对齐(配合width 使用,默认右对齐) |
+ | 在前面放+或-(强制输出’+’) |
(space) | 正数留空 |
0 | 0填充 |
- width 或 prec
width 或 prec | 含义 |
---|---|
number | 最小字符数(整个输出,包括小数点) |
* | 下一个参数是字符数 |
.number | 小数点之后位数 |
.* | 下一个参数是小数点后的位数 |
*可能有些抽象,其实就是增加格式的灵活性啦,类似占位符
printf("%6d",123);
// 效果一样
int len = 6;
printf("%*d",len,123);
- hlL(类型修饰)
类型修饰 | 含义 |
---|---|
hh | 单个字节(char) |
h | short |
l | long |
ll | long long |
L | long double |
o | 八进制 |
x | 字母小写的十六进制 |
X | 字母大写的十六进制 |
p 或 P | 指针 |
u | unsigned int |
e 或 E | 指数 |
n | 读入/写出的个数 |
这个n是不是老抽象了,别急啊
// n是这么耍滴
int num;
printf("%d%n",12345,&num);// 写入%n前(即:12345)存在的字符个数,5
printf("%d",num);// 读出num,为5
- printf()返回值:输出的字符数
scanf()
-
格式:% [flag] type
-
Flag
Flag | 含义 |
---|---|
* | 跳过 |
数字 | 最大字符数 |
hh | char |
h | short |
l | long,double |
ll | long long |
L | long double |
- scanf()返回值:读入的item数