Skip to content

C语言printf格式控制符一览表

Deepin edited this page Sep 26, 2021 · 2 revisions

输入输出函数(printf 和 scanf)是C语言中非常重要的两个函数,也是学习C语言必学的两个函数。在C语言程序中,几乎没有一个程序不需要这两个函数,尤其是输出函数(printf),所以这两个函数必须要掌握。

如果在程序中要使用 printf 或者 scanf,那么就必须要包含头文件 stdio.h。因为这两个函数就是包含在该头文件中的。

输出函数的功能是将程序运行的结果输出到屏幕上,而输入函数的功能是通过键盘给程序中的变量赋值。可以说输入输出函数是用户和计算机交互的接口。其中 printf 的功能很强大,用法很灵活,比较难掌握;而 scanf 的用法相对比较固定,但也有很多需要注意的地方。

# 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=全都原样输出了。此外需要注意的是:“输出控制符”和“输出参数”无论在“顺序上”还是在“个数上”一定要一一对应。

printf("输出控制符 非输出控制符",输出参数);

这实际上就是上面那个例子。这时候会有一个问题:到底什么是“输出控制符”,什么是“非输出控制符”?很简单,凡是以%开头的基本上都是输出控制符。

控制符 说明
%d 按十进制整型数据的实际长度输出。
%ld 输出长整型数据。
%md m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。
%u 输出无符号整型(unsigned)。输出无符号整型时也可以用 %d,这时是将无符号转换成有符号数,然后输出。但编程的时候最好不要这么写,因为这样要进行一次转换,使 CPU 多做一次无用功。
%c 用来输出一个字符。
%f 用来输出实数,包括单精度和双精度,以小数形式输出。不指定字段宽度,由系统自动指定,整数部分全部输出,小数部分输出 6 位,超过 6 位的四舍五入。
%.mf 输出实数时小数点后保留 m 位,注意 m 前面有个点。
%o 以八进制整数形式输出,这个就用得很少了,了解一下就行了。
%s 用来输出字符串。用 %s 输出字符串同前面直接输出字符串是一样的。但是此时要先定义字符数组或字符指针存储或指向字符串,这个稍后再讲。
%x(或 %X 或 %#x 或 %#X) 以十六进制形式输出整数,这个很重要。
%p 以十六进制形式输出变量地址

一定要掌握 %x(或 %X 或 %#x 或 %#X),因为调试的时候经常要将内存中的二进制代码全部输出,然后用十六进制显示出来。

参考链接

http://c.biancheng.net/view/159.html

Clone this wiki locally