格式控制字符串
一般形式
%[控制参数]类型
类型
%a p记数法的十六进制浮点数(C99);
%c 字符型(char)
%d 基本整型(int);%hd 短整型(short);%ld 长整型(long);(十进制输入输出,基本整型超过范围会自动转换为长整型,短整型同理)
%e 或%E输出指数形式;%e 输出小写字母,%E 输出大写字母;输出整型数据会出错;(%le 等同%lf ,其他类型同理)
%f 单精度实型(float),保留6位小数;%lf 双精度实型(double),保留15位小数,默认输出6位,需要使用%.[n]lf 指定小数输出的位数;
%g 等同%f ,自动选择合适的表示法输出,整数部分和小数部分合计最多6位;如果大于6位,整数部分大于6位会输出6位指数形式,整数部分不大于6位,合计超过6位多余的小数部分会舍去(四舍五入);不会输出没有意义的小数点和小数点后的0;%g 输出小写字母(指数形式),%G 输出大写字母(指数形式);
%i支持十进制、八进制、十六进制输入,输出十进制;(%li 等同%li ,其他类型同理)
%o 仅八进制整数;(%lo 等同%lo ,其他类型同理)
%p 指针(16位十六进制形式输出);
%s 字符串;
%u 无符号整型;%hu 无符号短整型;%lu 无符号长整型;(十进制输入输出)
%x 或%X 仅十六进制整数;%x 输出小写字母,%X 输出大写字母;(%lx 等同%lx ,其他类型同理)
%l64d 、%l64u 和%l64x ,同上,表示64位长整型
控制参数
(同时出现时按照以下顺序)
scanf()格式化输入
- 表示输入的数值符号取反;
* 表示跳过输入该格式字符串;(输出不可用)
[n] 从左向右截取n位字符,多余的字符可以用于下一个格式字符串输入;
printf() 格式化输出
- 在指定列宽时,左对齐输出,右补空格
[m] 指定列宽输出:如果长度大于m,全部输出;小于m,右对齐输出,左补空格;
.[n] 用于实型,指定小数位数;用于字符串,只输出从左向右数n个字符;(输入不可用)