printf()的转换说明
转换说明 | 输出 |
%a,%A | 浮点数,十六进制数和p记数法 |
%c | 单个字符 |
%d、%i | 有符号的十进制整数 |
%e,%E | 浮点数,e记数法 |
%f | 浮点数,十进制计数法 |
%g/%G |
根据值的不同,自动选择%f或%g/%G。 %g/%G格式用于指数小于-4或大于等于精度时。 |
%o | 无符号八进制整数 |
%p | 指针 |
%s | 字符串 |
%u | 无符号十进制整数 |
%x/&X | 无符号十六进制整数,是用十六进制of/oF |
%% | 打印一个百分号 |
printf()的转换说明修饰符
修饰符 | 含义 |
标记 | -,+,空格,#,0 |
数字 |
最小字段宽度 如果该字段不能容纳待打印的数字或字符串, 系统会使用更宽的字段。示例:%4d |
.数字 |
精度 对于%e,%E,%f的转换,表示小数点右边数字的位数 对于%g和%G转换,表示有效数字最大位数 对于%s转换,表示待打印字符的最大数量 对于整形转换,表示待打印数字的最小位数 |
h | 和整形转换说明一起使用,表示short int和unsigned short int类型的值。示例:%hu,%hx,%6.4hd |
hh | 和整形转换说明一起使用,表示signed char和unsigned char类型的值 |
l | 和整形转换说明一起使用,表示long int 和unsigned long int 类型的值 |
z |
和整形转换说明一起使用,表示size_t类型的值。 size_t是sizeof返回的类型。示例:%zd。 |
L | long double |
printf( )中的标记
标记 | 含义 |
- | 待打印项左对齐。 |
+ |
有符号值为正,则在值前面显示加号; 若为负,则在值前面显示符号。 |
空格 |
有符号值若为正,则在值前面显示前导符号; 若为负,则在值前面显示减号标记并覆盖空格。 |
# |
把结果转换为另一种形式。如果是%o格式,则以0开始; 如果是%x或%X格式,则以0x或0X开始; |
0 |
对于数值格式,用前导0代替空格填充字段宽度。 对于整数格式,如果出现-标记或指定精度,则忽视该标记。 |
scanf( )
1.如果用scanf()读取基本变量类型的值,在变量前加上一个&,如果是字符串则不用。
2.scanf()读入数组时读取到空格是结束。
3在scanf()中,把*放在%和转换字符之间时,会使得是scanf()跳过相应的输入项。而printf()则是在有充足的字段宽度时用*号填充。