微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c语言中向文本文件中写入实数

1、

#include <stdio.h>

int main(void)
{
    FILE *fp;  // 声明指向FILE型的指针变量 
    double pi = 3.14159265358979323846;   //声明 double型变量 
    printf("pi from value: %23.21f.\n", pi); //显示变量pi的值,因为浮点数的精度是有限的,导致pi的值不等于初始值。
    
    
    //将变量pi的值使用fprintf函数写入到文件
    if((fp = fopen("PI.txt", "w")) == NULL) //以只写的方式打开文件PI.txt.
        printf("\aFile open Failed.\n");
    else
    {
        fprintf(fp, "%lf", pi); //使用fprintf函数将变量pi的值写入到流fp(文件PI.txt)中,文件PI.txt中仅保留小数点后6位小数,这是因为浮点数认只输出
        //小数点后6位数字 
        fclose(fp);    
    } 
    
    
    //从PI.txt文件中读取数据,使用函数fscanf函数保存至变量中并显示
    if((fp = fopen("PI.txt","r")) == NULL) //以只读方式打开文件
        printf("\aFile open Failed.\n");
    else
    {
        fscanf(fp, "%lf", &pi);
        printf("Pi from file: %23.21f.\n", pi); // 次数并没有准确的显示文件PI.txt中的数值,也就是小数点后六位,这是因为double型并不能毫无误差地显示实数
        //的所有位数。 
        fclose(fp);    
    } 
    return 0;    
} 

// 以上程序说明了什么?    1、浮点数精度有限  2、fprintf函数不能够写入所有的位数  3、double型并不能毫无误差地显示实数

// 要做到不丢失任何一位数据(写入文件的时候不丢失任何数据),就必须写入所有位数。  也就是说能够写入所有位数? 然后完整的显示
 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐