对于很多人来说,用格式符都是熟能生巧,而不清楚为什么是那样的格式符,所以我在这列了一个表,翻译了其对应的英文。
进制名称 | 英文 | 缩写 |
---|---|---|
二进制 | Binary | B |
八进制 | Octal | O |
十进制 | Decimal | D |
十六进制 | Hexadecimal | H |
格式说明 | 表示内容 | 注释 |
---|---|---|
%d | 整型十进制 int | Decimal |
%ld | 长整型 long int | Long Decimal |
%f | 浮点型 float | Float |
%lf | 双精度浮点型 double | Long Float |
%% | 输出一个百分号 | % |
%c | 字符 char | Char |
%s | 字符串 | String |
%o | 八进制 | Octal |
%#o | 带前导(0)的八进制 | |
%x | 十六进制 | Hexadecimal |
%#x | 带前导(0x)的十六进制 | |
%p | 指针的值,输出地址符 即 地址 |
Pointer |
%md | 整型,m为总长度(常数)(默认为正数+) |
右对齐(数轴左-右+) 即 不足的话,左边补上空格 |
%-md | 整型,m为总长度(常数)(负数-) |
左对齐 即 不足的话,右边补上空格 |
%m.nf | 浮点型 m为总字符长度(包含小数点) n为小数长度 |
要进行四舍五入 当实际的显示大于m,那就按实际输出,也就是m无意义了 %3d 对应 1234 的话,就是1234 没有空格 |
举例说明:
printf("%2d",123);
第二部分有三位,大于指定的两位,原样输出 123printf("%5d",123);
第二部分有三位,小于指定的五位,左边补两个空格 123printf("%10f",1.25);
小数要求补足 6 位的,没有六位的补 0,。结果为 1.250000printf("%5.3f",125);
小数三位,整个五位,结果为 1.250(小数点算一位)printf("%3.1f",1.25);
小数一位,整个三位,结果为 1.3(要进行四舍五入)