printf宽度控制和精度控制
2016-12-09 13:52
113 查看
参考文章:printf “%.*s”
printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个
一般形式:
格式控制字符串形式:
类型
标志
输出最小宽度
精度
长度
示例
结果:
printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个
*代替那个常量,然后在后面提供变量给
*。
一般形式:
printf("格式控制字符串",输出列表);
格式控制字符串形式:
[标志][输出最小宽度][.精度][长度][类型]
类型
d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀 0) x,X 以十六进制形式输出无符号整数(不输出前缀 Ox) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e,E 以指数形式输出单、双精度实数 g,G 以%f 或%e 中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串
标志
- 结果左对齐,右边填空格 - 输出符号(正号或负号) 空格 输出值为正时冠以空格,为负时冠以负号 # 对 c,s,d,u类无影响;对 o 类,在输出时加前缀 o;对 x 类,在输出时加前缀 0x;对 e,g,f 类当结果有小数时才给出小数点
输出最小宽度
用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度, 则按实际位数输出,若实际位数少于定义的宽度则补以空格或 0。
精度
精度格式符以“.”开头,后跟十进制整数。本项的意义是: 如果输出数字,则表示小数的位数; 如果输出的是字符,则表示输出字符的个数; 若实际位数大于所定义的精度数,则截去超过的部分。
长度
长度格式符为 h,l 两种,h 表示按短整型量输出,l 表示按长整型量输出。
示例
#include <stdio.h> int main(void) { char s[] = "abcdefg"; int i = 12345; double d = 123.45678; printf("%s\n", s); printf("%.*s\n", 3, s); printf("%#.8x\n", s); printf("%#p\n\n", s); printf("%d\n", i); printf("%*d\n", 10, i); printf("%0*d\n\n", 10, i); printf("%f\n", d); printf("%.*f\n", 3, d); printf("%20.10f\n", d); printf("%*.*f\n\n", 20, 10, d); return 0; }
结果:
相关文章推荐
- C++中如何用cout实现输出的填充,宽度,对齐及其精度控制
- c++ cout 控制精度、宽度、进制
- scanf控制长度,printf控制长度和精度
- printf函数小技巧:用变量控制宽度
- 如何控制列表视图栏位的宽度?
- c++中控制输出精度的几种方式
- 用C的数据类型宽度扩展来解释char c=128;printf("%d",c);问题
- 求告诉怎么控制图片在平移的时候超过控件的宽度
- printf的格式控制
- printf的格式控制的完整格式 (转)
- C++精度控制
- 变量控制宽度小技巧
- printf()输出格式控制 (转)
- UVA-12555 - Baby Me(控制精度)
- Printf()输出格式控制
- Java控制double类型的精度
- printf格式控制符的完整格式
- printf格式控制
- ACM 137. [USACO Feb08] 连线游戏(计算直线斜率+精度控制)
- CSS控制图片大小-适应宽度