c语言中在二进制文件中保存实数
1、
#include <stdio.h> int main(void) { FILE *fp; // 定义指向FILE型的指针变量 double pi = 3.14159265358979323846; printf("Pi from value: %23.21f.\n", pi); // 直接输出变量pi的值,不等于原始变量, 这是因为浮点数的精度是有限的 //利用fwrite函数将变量pi的值写入到二进制文件中。 if((fp = fopen("PI.bin", "wb")) == NULL) // 以只写入的方式打开文件PI.bin. printf("\aFile open failed.\n"); else { fwrite(&pi, sizeof(double), 1, fp);// 利用fwrite函数将变量pi的值写入到流fp中(文件PI.bin)中 fclose(fp); } //利用fread函数读取二进制文件PI.bin的值,保存至变量中,并进行显示 if((fp = fopen("PI.bin", "rb")) == NULL)// 以只读方式打开PI.bin printf("\aFile open failed.\n"); else { fread(&pi, sizeof(double), 1, fp); // 利用fread函数读取fp流中的数据,并保存至变量pi printf("Pi from file: %23.21f.\n", pi); // 显示pi的值, 此时显示的pi的值和直接显示的pi变量的值是一致的,这说明变量在保存和输出过程中没有发生 //任何变化(在浮点数可以显示的精度范围内) fclose(fp); } return 0; } // 以上程序说明了什么? 以二进制的方式保存变量的值,可以保存所有的位数
#include <stdio.h> int main(void) { FILE *fp; //声明指向FILE型的指针变量 double pi = 3.14159265358979323846; printf("pi from value: %23.21f.\n", pi); //直接输出变量的值,与原始变量不一致,这是因为浮点数的精度有限 //利用fwrite函数将变量pi的值写入到二进制文件PI.bin中。 if((fp = fopen("PI.bin", "wb")) == NULL) // 以只写的方式打开文件 printf("\aFile open failed.\n"); else { fwrite(&pi, sizeof(double), 1, fp);//利用fwrite函数将变量pi的值写入到fp流(二进制文件PI.bin中) fclose(fp); } //利用fread函数读取二进制文件PI.bin中的值,保存至变量并进行显示 if((fp = fopen("PI.bin", "rb")) == NULL) //以只读的方式打开二进制文件 printf("\aFile open failed.\n"); else { fread(&pi, sizeof(double), 1, fp); //利用fread函数读取fp流的数值,并保存至变量pi中 printf("pi from file: %23.21f.\n", pi); // 输出pi的值, 和程序开头直接输出变量的值一致,说明将实数保存在二进制文件中,可以保存所有的位 fclose(fp); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律