C语言基础输出
在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是:
-
puts():只能输出字符串,并且输出结束后自动换行。
-
putchar():只能输出单个字符。
-
printf():可以输出各种类型的数据。
printf()是其中最灵活、最复杂、最常用的输出函数,它通过格式控制符对输出进行格式控制,它的部分格式控制符如下:
printf高级输出
printf() 格式控制符的完整形式:%[flag][width][.precision]type
([ ]
表示此处的内容可有可无,是可以省略的)
-
type:输出类型,这一项必须有。例如 %d、%f、%c、%lf,type 就分别对应 d、f、c、lf。
-
width:最小输出宽度。当输出结果的宽度不足width时,在数字左边以空格补齐;当输出结果的宽度超过width,width不再起作用。
-
.precision:对于浮点数而言,此项表示输出精度,当小数部分的位数小于precision时,会在后面补0,当小数部分的位数大于precision时,会按照四舍五入的原则丢掉多余的数字;对于整数而言,。.precision表示数字部分最小输出宽度,但与width不同,整数宽度不足时会在左边补0;对于字符串而言,.precision表示最大输出宽度,当字符串长度大于precision时,会截掉多余的字符串,小于不起作用。
-
flag:flag是标志字符,共4个:‘-’表示左对齐,没有就按照默认方式右对齐;‘+’表示对于整数或小数,输出正负号,没有就仅有负数会输出负号;‘ ’表示输出为正数时,以空格代替正号,输出为负数时,输出负号;‘#’表示对于整数而言,输出时添加前缀;对于浮点数而言,表示强迫输出小数点,即使没有小数部分。
演示代码如下:
#include <stdio.h>
int main()
{
int m = 192, n = -234;
double f = 9.8;
char c = '@';
char *str = "abcdefghi";
//演示width
printf("%10d%12lf%4c%8s\n", n, f, c, str);
//演示.precision
printf("n: %.9d %.4d\n", n, n);
printf("f: %.2lf %.4lf %.10lf\n", f, f, f);
printf("str: %.5s %.15s\n", str, str);
//演示flag
printf("m=%10d, m=%-10d\n", m, m); //演示 - 的用法
printf("m=%+d, n=%+d\n", m, n); //演示 + 的用法
printf("m=% d, n=% d\n", m, n); //演示空格的用法
printf("f=%.0lf, f=%#.0lf\n", f, f); //演示#的用法
return 0;
}
运行结果如下图: