用于scanf的格式符有以下几种:
    c 读单字符
    d 读十进制整数
    i 读十进制、八进制、十六进制整数
    e 读浮点数
    f 读浮点数
    g 读浮点数
    o 读八进制数
    s 读字符串
    x 读十六进制数
    p 读指针值
    u 读无符号十进制整数
    [ ] 扫描字符集合
所以%d指示scanf读取一个整数值,%c指示读取一个字符,%lf指示读取一个双精度值。
格式字符          意            义
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>
printf函数中用到格式符%5void 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" .

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。