一直在用C++,使用cin读入double类型,今天写了点C,突然发现从键盘读入double类型出错了。
代码如下:
double a;
scanf("%f",&a);
printf("%f\n",a);
输入的小数部分是乱码。
查了一下资料,原来是我把格式化输入搞错了。
printf 使用%f 可以输出 double 和 float 类型
但是 scanf 使用%f 读入 float 类型,使用 %lf 读入double类型
所以正确代码应是:
double a;
scanf("%lf",&a);
printf("%f\n",a);
记下,前车之鉴。