当我们在打印数据时,会依据数据类型的不同,选择不同的打印方式,下面是一些常用的格式化输出字符。
%o:八进制表示的整数
%d:十进制有符号整数
%u:十进制无符号整数
%x:十六进制表示的整数
%f:float型浮点数
%lf:double型浮点数
%e:指数型的浮点数
%s:字符串
%c:单个字符串
%p:指针的值
#include <stdio.h>
int main(void){
int a = 65;//101 1*8^2+8^0=65
int b = 10;
int c = 0x1a;//0001 1010 --110
float d = 0.01f;
double e = 1.234;
float f = 0.01f;
double g = 1234;
char *p = "handsome boy";
char h = 'a';
printf("a = %o\n",a);
printf("b = %d\n",b);
printf("c = %x\n",c);
printf("c = %d\n",c);//十进制打印 0x1a = 1*16+10=26
printf("d = %f\n",d);
printf("e = %lf\n",e);
printf("f = %e\n",f);
printf("g = %e\n",g);
printf("%s\n",p);
printf("h = %c\n",h);
return 0;
}
在以上的的格式基础上还有一些特殊的应用:
%2d:要求宽度为两位,若不足两位,前面空格补齐;若足够两位,这个语句无效
%02d:要求宽度为两位,若不足两位,前面0补齐;若足够两位,这个语句无效
%-2d:要求宽度为两位,若不足两位,后面空格补齐;若足够两位,这个语句无效
%.2f:小数点后保留两位
#include <stdio.h>
int main(void){
printf("**%2d**\n",2);
printf("**%2d**\n",22);
printf("\n");
printf("**%02d**\n",2);
printf("**%02d**\n",22);
printf("\n");
printf("**%-2d**\n",2);
printf("**%-2d**\n",22);
printf("\n");
printf("**%.2f**\n",2.123);
return 0;
}