一、整型家族的格式化打印形式
我们要记住signed ➕ 类型完全等效与单独的类型
所以我们下面会用(signed)来表示可以省略不写。
- (signed)int (有符号整型)———%d
- unsigned int (无符号的int类型)———%u
- (signed)long (有符号长整型)———%ld
- unsigned long (无符号的长类型)———%lu
- (signed)long long(有符号长长整型)———%lld
- unsigned long long (无符号的长类型)———%llu
- (signed)short (有符号短整型)———%hd
- unsigned short (无符号的长类型)———%hu
- 以上类型若是想在printf和scanf中保留相关位数———%md
请看本篇文章http://t.csdnimg.cn/i1kNm
1.1 八进制和十六进制的格式化打印:
以八进制形式输出无符号整数(不输出前缀0)———%o
八进制数例如:0123,0234,0345,03等前缀是0的数
以十六进制形式输出无符号整数(不输出前缀Ox)———%x , %X
十六进制数例如:0x11223344,0X11,0x221c等前缀是0x和0X的数
- 若想输出前缀要改写成———十六进制:%#x、%#X
八进制:%#o
1.2 %i和%d的区别:
在C语言中,%i和%d都是格式控制符,用于格式化输出整数类型的变量。
%d 用于输出有符号的十进制整数。它会将整数按照十进制形式输出,并且如果整数是负数,则会输出一个负号。
%i 也用于输出有符号的十进制整数。与%d相比,%i可以将八进制数字和十六进制数字转换成十进制数字输出。
二、浮点型家族格式化打印形式(浮点数只有 有符号的类型)
- float(有符号的单精度浮点数)———%f 默认保留6位小数
- double(有符号的双精度浮点数)———%lf 默认保留15位小数
- 在输出中想保留n位小数———%.nf 或者 %.nlf
#include <stdio.h> int main() { float a = 1.2345; printf("%.1f\n",a); return 0; }
这里表示输出的结果保留一位小数,也就是1.2
三、科学计数法格式化打印
1. 科学计数法表示的浮点数(小写字母)———
%e
2. 科学计数法表示的浮点数(大写字母)———%E
四、字符类型的格式化打印形式
- char———%c( 输出单个字符 )
char———%d(输出字符对应的ASICC值) - 字符串类型———%s (输出字符串)
若想限制输出字符串中的字符个数,我们用%.ns的格式,表示输出前n个字符
#include <stdio.h> int main() { char a[50] = "hello world"; printf("%.7s\n",a); return 0; }
这就代表了输出前7个字符,也就是hello w
五、%ms
m代表的是在屏幕上输出m个字符个数
m 前面没有负号 右对齐
m 前面有负号 左对齐
m <= 字符串长度,打印整个字符串
m > 字符串长度,不够地方用空格填充
1. m < 字符串长度
#include <stdio.h> int main() { printf("%5s,%s","computer","computer"); return 0; }
如图,我们是%5s,5是小于字符串长度的,所以打印整个字符串就OK啦
2. m > 字符串长度
#include <stdio.h> int main() { printf("%15s,%s","computer","computer"); return 0; }
这里是打印15个字符个数,很明显字符串长度小于15,不够的就用空格填充
六、其他的格式化打印形式
1. 打印地址———%p(16进制显示)