大家好,又见面了,我是你们的朋友全栈君。
1、控制小数点后有多少位:printf(“%.10lf\n”,f_a); //将浮点数f_a输出时,输出其小数点后10位,默认是输出小数点后6位。
2、控制一共(小数点前后以及小数点)输出多少位:printf(“%10.7f\n”,f_b); //将浮点数f_b输出时,输出其小数点前2位,小数点后7位(加上小数点共10位)。
3、输出时让正数带”+”号,负数带”-“号:printf(“%+f\n”,f_c); //输出f_c时,若f_c是正数,则在其前面加”+”号,否在,在其前加”-“号。
4、让输出的数值左对齐:printf(“%-10.7f\n”,f_d); //输出f_d时,若f_d只有9位(包括小数点),则令右边空出一位。默认情况下是右对齐,即若总位数没占满时,左边补空格。
5、用0代替空格,填补没有字符的位。
printf("%9d",5); //用9位输出整型数5,5只占一位,5前面的8位用0填充,即输出为:000000005
printf("%09d",5);//用9位输出5,5只占最右端1位,前面8位用空格填充,即输出为: 5
注:在控制总共输出多少位时,当要输出的浮点数“整数部分的位数+1+小数部分要输出的位数”之和大于要求输出的总位数时,控制格式中的用来控制总共输出位数(即,占多少位)就不起作用了,而是会输出所有整数部分数字、小数点以及按要求的位数输出小数部分的位数。如:
double d=123456789.12345;
printf("%10.2lf",d);
以上两条语句的输出结果是:123456789.12,而不是3456789.12.
6、printf()中的’\r’表示把cursor移动到本行首,‘\n’表示移动到下一行(并没有包含移动到行首的意思),但在C语言中’\r’被识别成ctrl+M,’\n’被解释成移动到行首再换行。
7、
int a=15;
printf("a=%x\n",a);
说明:输出结果是”a=f“,即%x表示以16进制形式输出a所在内存中值,输出长度是sizeof(type_a),其中type_a是指a的类型。 8、printf()、%p输出地址
int* p;
p=(int*)malloc(1234);
printf("pointer=%p\n",p);
free(p);
说明:以上代码输出地址变量p的值。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163861.html原文链接:https://javaforall.cn