首页 > 编程笔记 > C语言笔记

C语言printf()函数用法详解

在 C 语言中,printf() 函数可以输出各种类型的数据,功能很强大,用法很灵活,比较难掌握。

printf() 函数的格式有以下 4 种。

1、printf()输出格式一

printf("字符串\n");
示例代码如下:
#include <stdio.h>
 
int main(void)
{
    printf("Hello World!\n"); //\n表示换行
 
    return 0;
}
其中,\n表示换行。它是一个转义字符。

此外还需要注意,printf() 函数中的双引号和后面的分号必须在英文输入法下输入。双引号内的字符串可以是英文,也可以是中文。

2、printf()输出格式二

printf("输出控制符",输出参数);
示例代码如下:
#include <stdio.h>
 
int main(void)
{
    int i = 10;
 
    printf("%d\n", i); /*%d是输出控制符,d 表示十进制,后面的i是输出参数*/
  
    return 0;
}
其中,printf() 语句的意思是将变量 i 的值以十进制形式输出。

变量 i 的值本身就是十进制数,为什么还要将变量 i 的值以十进制形式输出呢?这是因为,程序中虽然写的是 i=10,但是在内存中并不是将 10 这个十进制数存放进去,而是将 10 的二进制代码存放进去了。计算机只能执行二进制的 0、1 代码,而 0、1 代码本身并没有什么实际的含义,可以表示任何类型的数据。所以输出的时候要强调以哪种进制形式输出,且必须要有输出控制符,以告诉操作系统应该怎样解读二进制数据。

如果是 %x,代表以十六进制的形式输出,如果是 %o,代表以八进制的形式输出。

3、printf()输出格式三

printf("输出控制符1 输出控制符2...",输出参数1,输出参数2,...);
示例代码如下:
#include <stdio.h>
 
int main(void)
{
    int i = 10;
    int j = 3;
 
    printf("%d %d\n", i, j);
 
    return 0;
}
“输出控制符 1”对应的是“输出参数 1”,“输出控制符 2”对应的是“输出参数 2”,以此类推,编译执行后输出结果如下:

10 3


下表列出了 C语言常用的输出控制符及其说明。

表 1 C语言常用的输出控制符及说明
输出控制符 说明
%d 按十进制整型数据的实际长度输出。
%ld 输出长整型数据。
%md m 为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格;若大于m,则按实际位数输出。
%u 输出无符号整型数据(unsigned)。
%c 用来输出一个字符。
%f 用来输出实数,包括单精度和双精度,以小数形式输出。不指定字段宽度,由系统自动指定, 整数部分全部输出,小数部分输出 6 位,超过 6 位的部分四舍五入。
%.mf 输出实数时小数点后保留 m 位,注意 m 前面有个点。
%o 以八进制形式输出整型数据。
%s 用来输出字符串,用 %s 输出字符串同前面直接输出字符串是一样的。
%x (或 %X) 以十六进制形式输出整型数据。

printf() 函数中有输出控制符%d,转义字符前面有反斜杠\,还有双引号。那么怎样将这 3 个符号通过 printf() 函数输出到屏幕上呢?

要输出%d,只需在%d前面再加上一个%;要输出\,只需在\前面再加上一个\;要输出双引号,也只需在双引号中间加上一个\

示例代码如下:
#include <stdio.h>
 
int main(void)
{
    printf("%%d\n");
    printf("\\\n");
    printf("\"\"\n");
 
    return 0;
}
编译运行后结果如下:

%d \ ""

4、printf()输出格式四

printf("输出控制符和非控制符",输出参数);
示例代码如下:
#include <stdio.h>
 
int main(void)
{
    int i = 10;
    int j = 3;
 
    printf("i = %d, j = %d\n", i, j);
  
    return 0;
}
编译执行,结果如下:

i = 10, j = 3

可以看到,“i =”、“,”、空格和“j =”全都原样输出了。注意,输出控制符和输出参数无论在顺序上还是在个数上都必须一一对应。

声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。