在进行文件操作的时候,有时候是用文本的形式存在文件里面,例如用 fprintf(fp,"%d",123) 存一个数据123,实际的存储是已1,2,3这3个ASCII码存入,打开文件即可看到123,这种存储方式可能会有精度丢失问题,还有一种就是二进制文件存储了,例如前面的123不再是一123的各个字符存入,而是123转换成的2进制数据存入,这个时候要用的 fwrite()和fread()
FILE *bp ;
double pi=3.14159265358979323246 ;
bp=fopen("pi.bin","wb"); // 这个时候要以2进制方式写入 b
if(bp==NULL)
{
printf("打开失败1");
}
else
{
fwrite(&pi,sizeof(double),1,bp);
fclose(bp);
}
FILE *cp;
cp=fopen("pi.bin","rb"); //以二进制方式读出
if(cp==NULL){
printf("打开失败2");
}
else
{
double newpi;
fread(&newpi,sizeof(double),1,bp);
fclose(bp);
printf("%.23f",newpi);
}