c语言中向文本文件、二进制文件中写入实数

c语言向文本文件、二进制文件中写入实数。

1、

复制代码
#include <stdio.h>

int main(void)
{
    FILE *fp;
    double pi = 3.14159265358979323846;
    printf("pi from value: %23.21f.\n", pi);  // 因为浮点数精度有限,不能准确显示数值
    
    if((fp = fopen("PI.txt", "w")) == NULL)
        printf("\aFile open failed.\n");
    else
    {
        fprintf(fp, "%f", pi);   // fprintf写入文件,默认保留6位有效小数
        fclose(fp);
    }
    
    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);  // double型不能准确无误的显示所有位数
        fclose(fp);
    }
    return 0;
}
复制代码

 

2、

复制代码
#include <stdio.h>

int main(void)
{
    FILE *fp;
    double pi = 3.14159265358979323846;
    printf("pi from value: %23.21f.\n", pi); // 因为浮点数的精度有限,与变量值不一致 
    
    if((fp = fopen("PI.bin", "w")) == NULL)
        printf("\aFile open failed.\n");  
    else
    {
        fwrite(&pi, sizeof(double), 1, fp);  // 将变量pi以二进制形式写入文件 
        fclose(fp);    
    }    
    
    if((fp = fopen("PI.bin", "r")) == NULL)
        printf("\aFile open failed.\n");
    else
    {
        fread(&pi, sizeof(double), 1, fp);  //以二进制形式读取文件 
        printf("pi from file: %23.21f.\n", pi); // 显示变量,变量和写入的变量没有差异, 
        fclose(fp);    
    } 
    return 0;
} 
复制代码

 

posted @   小鲨鱼2018  阅读(528)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示