printf!怎么用!还能怎么用!
2020.10.28
printf(“格式控制字符串”,输出列表)
格式控制字符串包括:
[附加符]、[输出最小宽度]、[.精度]、[长度]、[格式字符]
一、附加附(也称标志)
–:结果左对齐
+:输出符号
(空格):输出为正时添加空格,为负时添加负号
#include <stdio.h>
int main(){
int a=5,b=-5;
printf("%d║%+d║%-d║% d\n",a,a,a,a);
printf("%d║%+d║%-d║% d\n",b,b,b,b);
return 0;
}
输出:
5║+5║5║ 5
-5║-5║-5║-5
二、输出最小宽度
用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或 0。
#include <stdio.h>
int main(){
int a=12345678,b=-12345678;
printf("%d║%5d║%10d\n",a,a,a);
printf("%d║%5d║%10d\n",b,b,b);
return 0;
}
输出:
2345678║12345678║ 12345678
-12345678║-12345678║ -12345678
显然的,负号占了一位
三、.精度
精度格式符以“.”开头,后跟十进制整数。本项的意义是:
如果输出数字,则表示小数的位数;
如果输出的是字符,则表示输出字符的个数;
→→→若实际位数大于所定义的精度数,则截去超过的部分。
注意!输出最小宽度不会删除超出部分,但精度会删除
#include <stdio.h>
int main(){
float a=12.3456789;
char b[]="hello word";
printf("%f║%.1f║%.5f║%.10f\n",a,a,a,a);
printf("%s║%.1s║%.5s║%.10s\n",b,b,b,b);
return 0;
}
输出:
12.345679║12.3║12.34568║12.3456792831
hello word║h║hello║hello word
对于数字,超出部分是不精确的,比如输出第一行最后一个的倒数后四位
长度
长度分为H/h和L/l,分别是短型和长型
综合示例
#include <stdio.h>
int main(){
float a=12.3456789,b=-12.3456789;
int c=123456789,d=-123456789;
printf("%3f║%3.3f║% 3.3f\n",a,a,a);
printf("%3f║%3.3f║% 3.3f\n",b,b,b);
printf("%3d║%3.3d║% 3.3d\n",c,c,c);
printf("%3d║%3.3d║% 3.3d\n",d,d,d);
printf("%d║%ld║%hd\n",c,c,c);
printf("%d║%ld║%hd\n",d,d,d);
printf("%11d║%+11d║%-11d║% 11d\n",c,c,c,c);
printf("%11d║%+11d║%-11d║% 11d\n",d,d,d,d);
return 0;
}
输出:
12.345679║12.346║ 12.346
-12.345679║-12.346║-12.346123456789║123456789║ 123456789-123456789║-123456789║-123456789123456789║123456789║-13035-123456789║4171510507║13035 123456789║ +123456789║123456789 ║ 123456789 -123456789║ -123456789║-123456789 ║ -123456789