c语言如何把double 型数字输出结果保存到文件 比如说是11.23456输出保存到文件

如题所述

#include <stdio.h>

int main()
{
double d = 11.23456;

// 写入
{
FILE* file = fopen("./test.dat", "wb"); //以二进制写方式打开文件
if( file != NULL )
{
fwrite( &d, sizeof(d), 1, file ); //把变量d的内容写入文件
fclose( file );
}
}

// 读取
{
FILE* file = fopen("./test.dat", "rb");
if( file != NULL )
{
double ddd;
fread( &ddd, sizeof(ddd), 1, file );
fclose(file);

printf( "ddd=%f\n", ddd );
}
}
}追问

如果要保留3位小数的呢

追答

输出精度在 printf 格式上控制,如:
printf("ddd=%.3f", ddd); //这就输出3位小数

保存到文件是完整的double类型,具体占几个字节由你的编译开关和系统来决定,通常double为8字节,即sizeof(double)==8

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-01
#include <stdio.h>

int main()
{
double d = 11.23456;

FILE *fp = fopen("a.txt", "w");
if (NULL == fp)
{
printf("open fails\n");
return -1;
}

fprintf(fp, "%.3lf", d); // 这里就是格式控制
fclose(fp);
return 0;
}

执行完后你可以打开a.txt自己看看。
相似回答