%d表示输入或输出十进制有符号数;%f表示输入或输出浮点数(float,四字节表示);在C语言中输出不同数据时需要用到不同的格式字符,%d是用来输出十进制整型数据的实际长度输出,%f是以小数形式输出单、双精度度数。以下是详细介绍:
1、%d表示输入或输出十进制有符号数;
2、%f表示输入或输出浮点数(float,四字节表示);
3、另%lf表述输入或输出双精度浮点数(double 8字节表示);
4、在输出不同数据时要用不同的的格式字符,比如说这个%d是用来输出十进制整型数据的实际长度输出;%f是以小数形式输出单、双精度度数,隐含输出6位小数;还有很多,如%s(输出字符串)
不一样的,这么都是格式字符,意义如下:格式字符 意义
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀Ox)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
前面加个%,你自己对照下吧
长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。你这个“%lf”,是在定义输入的类型为double(双精度)是用的,不明白,你可以测试下:
#include<stdio.h>
void main()
{ double i
scanf("%lf",&i)
printf("%f\n",i)
}
和
#include<stdio.h>
void main()
{ double i
scanf("%f",&i)
printf("%f\n",i)
}
我这里用了2个编译器分别测试了下,一个如果定义double行,输入的时候必须要用%lf,一个就不用了,用%f也行,但是精度还是有区别的,综合以上,如果定义double型数据,输入最好是用"%lf" .
简单讲"%d %c"可以以0个或多个空白字符(空格、tab键、回车等)作为分隔符,同时%c不会读取空白字符,%c读取的一定是一个非空白字符,如:输入1 a,读取的是1和a;
输入2 b,读取的是2和b;
输入3<回车> <回车>c,读取的是3和c。
而 "%d%c"会读取一个数和紧挨着这个数的一个字符(包括空白字符),如:
输入1 a,读取的是1和' '(空格);
输入2b,读取的是2和b;
输入3.a,读取的是3和.;
输入3<回车>c,读取的是3和'\n'(回车)。