c语言中double型数据的输入

来源:互联网 发布:传智播客c语言视频 编辑:程序博客网 时间:2024/05/17 04:16

今天练习在linux下编程C语言,写了一个很小的示例程序,发现结果不能正常显示。起初以为是系统差异的问题就把代码复制到了vc++下运行结果仍然不能正确显示。于是经过多番修改调试将错误确定到了double型数据的输入与输出上。于是专门写了一个代码检测错误原因。代码如下:

#include<stdio.h>
int main()
{
    double in;


    printf("请输入\n");
    scanf("%f",&in);
    printf("%f\n",in);


    return 0;
}

输入数字1后理想输出应为1.000000(printf不加条件%f默认含6位小数),但得到的结果却是一大段数字,结果明显与预期不符,查看代码后感觉没有错误于是上书上翻看double型数据以及输入和输出函数,找了一段时间书上并没有标注说double型数据的输入与输出有什么特别,上网百度后发现scanf对于float类型必须用%f,double必须用%lf
对于scanf,情况就完全不同了,它接受指针,这里没有类似的类型提升。(通过指针)向float存储和向double存储大不一样,因此,scanf区别%f和%lf。

经过修改后发现结果能正常显示结果。事后又去翻书发现书上的确有这样的一句话,看来还是自己平时学习不够细致,基础不够扎实。

0 0
原创粉丝点击