上一篇文章聊了输入函数,这次聊一聊输出函数printf();

printf()与scanf()一样都属于标准库函数,使用之前必须要有编译预处理指令(在编译之前进行的处理)

printf()格式字符:

%d 输出十进制有符号int型

%u输出十进制无符号int型

%f以小数形式(6位小数)输出float,double

%e 以标准指数形式输出float,double

格式修饰符:

(1):  l,h

%ld,%lu输出long型

%hd,%hu输出short型

(2):m 数据占用的最小域宽,加在%和数据类型之间

数据位宽小于m时,右对齐,左补空格

-m 左对齐,右补空格

(3):

显示精度 .n 对浮点数表示输出n位小数

加上域宽,一般格式%m.nf

举个例子:

#include <stdio.h>

int main() {

    float a=3.14;

    printf("%6.3f\n",a);

    return 0;

运行结果:

 3.140

Program ended with exit code: 0

.3表示以三位小数输出(默认输出6位小数),会发现3前面多出一个空格,这是因为我们想要输出的3.140的域宽为5(注意.也占一个宽度),小于我们想要的域宽6,所以,左补一个空格,换成-6就是右补空格。

还有,printf()的输出格式较为灵活:

#include <stdio.h>

int main() {

   int a=3,b=5;

    printf("%d+%d=%d\n",a,b,a+b);

    return 0;

}

这样就可以直接输出:

​3+5=8

Program ended with exit code: 0

即可以在格式字符串中设定想要输出的格式

再提一点,如果想要输出%,

​int a =10;

printf("%d%%",a);

可以输出10%

即连续两个百分号输出百分号

相比于scanf(),printf()还是比较容易理解的,输入,输出函数还有getchar(),putchar(),这些都比较容易理解,也没有那么灵活,在这里就不介绍了。