格式化的输入输出
- printf
- %[flags][width][.prec][hlL]type
- scanf
- %[flag]type
%[flags][width][.prec][hlL]type
| Flag | 含义 |
|---|---|
| - | 左对齐 |
| + | 在前面放+或- |
| (space) | 正数留空 |
| 0 | 0填充 |
| width或prec | 含义 |
|---|---|
| number | 最小字符数 |
| * | 下一个参数是字符数 |
| .number | 小数点后的位数 |
| .* | 下一个参数是小数点后的位数 |
| 类型修饰 | 含义 |
|---|---|
| hh | 单个字节 |
| h | short |
| l | long |
| ll | long long |
| L | long double |
| type | 用于 |
|---|---|
| i或d | int |
| u | unsigned |
| o | 八进制 |
| x | 十六进制 |
| X | 字母大写的十六进制 |
| f或F | float,6 |
| e或E | 指数 |
| g | float |
| G | float |
| a或A | 十六进制浮点 |
| c | char |
| s | 字符串 |
| p | 指针 |
| n | 读入/写出的个数 |
#scanf:%[flag]type
| flag | 含义 |
|---|---|
| * | 跳过 |
| 数字 | 最大字符数 |
| hh | char |
| h | short |
| l | long,double |
| ll | long long |
| L | long double |
| type | 用于 |
|---|---|
| d | int |
| i | 整数,可能为十六进制或八进制 |
| u | unsigned |
| o | 八进制 |
| x | 十六进制 |
| a,e,f,g | float |
| c | char |
| s | 字符串(单词) |
| […] | 所允许的字符 |
| p | 指针 |
printf和scanf的返回值
- 读入的项目数
输出的字符数
在要求严格的程序中,应该判断每次调用scanf或printf的返回值,从而了解程序运行中是否存在问题