C语言-格式说明符
表一 转换说明符及作为结果的打印输出
表二 printf() 修饰符
表三 printf()的标志
表四 ANSIC 中 scanf()的转换说明符
表五 scanf()的转换修饰符
表附一 特别说明符
下面来自
一.%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。