用于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小时内删除。
发表评论