C语言-格式说明符

表一 转换说明符及作为结果的打印输出

img

表二 printf() 修饰符

img

表三 printf()的标志

img

表四 ANSIC 中 scanf()的转换说明符

img

表五 scanf()的转换修饰符

img

表附一 特别说明符

img


下面来自

一.%d与%i的区别:

(1).在printf格式中使用,没有区别。

(2).在 scanf 格式串中使用时,区别如下:

    a.在scanf格式中,%d 只与十进制形式的整数相匹配。

    b.而%i 则可以匹配八进制、十进制、十六进制表示的整数。·

    c.例如:如果输入的数字有前缀 0(018、025),%i将会把它当作八进制数来处理,如果有前缀0x (0x54),它将以十六进制来处理。

二、%p和%x的区别:

(1)输出类型相同:都是无符号十六进制。

(2)输出结果不同:

    a. %p以十六进制的形式是打印地址,编译器多少位,就打印多少位。比如:32位的打印32位,64位打印64位(不够的左边补0);

    b. %x的输出位数不固定,比如:0x01,0x0101,0x01010101等。

    c. %02x: 02表示不足两位,前面补0输出;如果超过两位,则实际输出。%.2x效果和%02x相同。%-2x,数据不足两位时,后面补空格输出,不额外补0输出; 如果超过两位,则实际输出

三、%g:

​ 例如:3.14000000,用%g的输出结果为3.14

四、%e:

%e是printf的格式控制字符,用于指定浮点类型数据使用指数形式输出

C语言中小数的指数形式为:**aEn 或 aen**

a 为尾数部分,是一个十进制数;n 为指数部分,是一个十进制整数;E或e是固定的字符,用于分割尾数部分和指数部分。整个表达式等价于 a×10n

举例:

2.1E5 = 2.1x105

3.7E-2 = 3.7x10-2

C语言中常用的小数有两种类型,分别是 float 或 double;float 称为单精度浮点型,double 称为双精度浮点型

小数的输出:

小数也可以使用 printf 函数输出,包括十进制形式和指数形式,它们对应的格式控制符分别是:
%f 以十进制形式输出 float 类型;
%lf 以十进制形式输出 double 类型;
%e 以指数形式输出 float 类型,输出结果中的 e 小写;
%E 以指数形式输出 float 类型,输出结果中的 E 大写;
%le 以指数形式输出 double 类型,输出结果中的 e 小写;
%lE 以指数形式输出 double 类型,输出结果中的 E 大写。
%g 和 %lg 分别用来输出 float 类型和 double 类型,并且当以指数形式输出时,e小写。
%G 和 %lG 也分别用来输出 float 类型和 double 类型,只是当以指数形式输出时,E大写。

保留小数点后几位:

#include <stdio.h>
#include <string.h>

int main(void) {
    printf("%.2f",3.555E3); //保留到小数点后两位
}

(83条消息) 【C/C++】小数的输出 %e的用法 用科学计数法输出数据 %e输出00_列队猫的博客-CSDN博客_c++科学计数法输出

五、%u:

如果它对应的值是负的,则返回时是一个2的32次方减去这个负数的绝对值。例如:-2,返回的是:4294967294。