printf函数的用法

来源:互联网 发布:刺客信条4优化补丁 编辑:程序博客网 时间:2024/06/05 03:29
printf函数的用法
%f 缺省为小数点后6
printf("%f\n", 1234.000001);  //output 1234.000001 
%.9f 小数点后9位,不够的9位后面用0补充
printf("%.9f\n", 1234.00000001);  //output 1234.000000010
%.2f 小数点后2位,多余的会被删除,进位采用四舍五入的方式
printf("%.2f\n", 2.22555); //normal output 2.23
%4f 最少输出4位,但是由于缺省小数点后面就是6位,所以这样的设置没有意义
printf("%4f\n", 2.2); //normal output 2.200000
%10f 最少输出10位,小数点后面自动会补充到6为,如果还是不够10为,则在数字的右侧增加空格,并且小数点是占一位的。
printf("%10f\n", 2.2); //normal output -2.200000
%-10f 最少输出10位,小数点后面自动会补充到6为,如果还是不够10为,则在数字的左侧增加空格,并且小数点是占一位的。
printf("%-10f\n", 2.2); //normal output 2.200000--
%10.3f 最少输出10位,小数点后面最多3位,首先将小数处理成3位,并进行四舍五入。由于位数不够10位,在左侧用空格补充。
printf("%10.3f\n", 2.2555); //normal output  -----2.256
%-10.3f 最少输出10位,小数点后面最多3位,首先将小数处理成3位,并进行四舍五入。由于位数不够10位,在右侧用空格补充。
printf("%-10.3f\n", 2.2555); //normal output  2.256-----
%f 四舍五入的规则是按小数点输出位数之后的一个数进行四舍五入的,不是从整个数字的最后一位进行四舍五入的。
printf("%.3f\n", 2.44448); //normal output 2.444 因为小数点后面34之后还是4,所以8对其结果没有影响,不会从8开始进位的变成2.4445之后再进位成2.445
printf("%.3f\n", 2.44458); //normal output 2.445 正常从小数点第四位开始进位
 
%d 输出十进制数字
% 当一个int型的数据包含小数位时,其值会自动转换成int型,也就是说会把小数为舍弃掉,并且没有四舍五入的规则。
int i=2.9;
printf("%d\n", i);
 
 
%o 输出八进制数字
printf("%o\n", 20);  //output:24
%o代表八进制输出,输出格式是数字,前面不带”0”,只有在程序中才会在前面加”0”说明是一个八进制数字。
 
%x 输出十六进制数字
printf("%o\n", 20);  //output:14
%x代表八进制输出,输出格式是数字,前面不带”0x”,只有在程序中才会在前面加”0x”说明是一个十六进制数字。
 
%s 正常输出字符串
printf("%s\n", "abcd"); //normal output abcd
%8s 最少输出8位长度的字符串,不够在字符串左侧用空格补充
printf("%8s\n", "abcd"); //normal output ----abcd
%8s 最少输出8位长度的字符串,不够在字符串右侧用空格补充
printf("%-8s\n", "abcd"); //normal output abcd----
%.2s 最多输出2位长度的字符串
printf("%.2s\n", "abcd"); //normal output ab
%8.2s 最少输出8位,最多输出2位。首先按最多输出处理,截取字符串前两位,然后最少输出处理,由于不够8位,则在左侧用空格补充
printf("%8.2s\n", "abcd"); //normal output  ------ab
%-8.2s 最少输出8位,最多输出2位。首先按最多输出处理,截取字符串前两位,然后最少输出处理,由于不够8位,则在右侧用空格补充
printf("%-8.2s\n", "abcd"); //normal output  ab------
 
%e 按指数的形式输出,基数按浮点型处理,小数点要6位,不够6位用0补充,大于6位截取6位,并四舍五入。指数部分为e加上正负号及3位整数,并且不够补充到3位,但是不能大于3,。如果没有指数,则用+000补充,但是不能有e而没有数字。比如“3.2e”这样是错误。
%e 正常输出
printf("%e\n", 3.21e2);   //3.210000e+002
printf("%e\n", 0e2);  //0.000000e+2
 
%e 没有指数用e+000补充
printf("%e\n", -3.21);   //-3.210000e+000
%e 基数部分大于6位则进行截取,并四舍五入。
printf("%e\n", 3.2132567e-2);  //3.213257e-002
 
 
%g 按浮点型和指数型中的最精确的输出,如果精确度一样则以最短输出
 
3.21e-4的浮点型为0.000321  指数型为3.210000e-004,浮点型比指数型短,所有使用浮点型输出
printf("%f, %g, %e\n", 3.21, 3.21e-4, 3.21e2);
3.210000,0.000321,3.210000e+002
 
3.21e-5的浮点型为0.000032  指数型为3.210000e-005,由于指数型比浮点型表示的更精确,所有使用指数型输出
printf("%f, %g, %e\n", 3.21e-5, 3.21e-5, 3.21);
0.000032,3.210000e-005,3.210000e+000
 
“\t”为水平制表符
printf("abc\t\n");abc-----                        abc后面为5个空格
原创粉丝点击