一个将浮点数写入文件再读出的C程序,结果错误。
#include<stdio.h>voidmain(){FILE*fp;floatf=12.34;if((fp=fopen("file","wb"))==NULL){pr...
#include<stdio.h>
void main()
{
FILE *fp;
float f=12.34;
if((fp=fopen("file","wb"))==NULL)
{
printf("Can't open file.");
exit(1);
}
fwrite(&f,sizeof(float),1,fp);
printf("%f\n",f); //执行完此步,DOS屏幕显示正确,但文件file中内容错误
fread(&f,sizeof(float),1,fp);
printf("%f\n",f); //执行完此步,DOS屏幕和file文件均显示错误
flose(fp);
} 展开
void main()
{
FILE *fp;
float f=12.34;
if((fp=fopen("file","wb"))==NULL)
{
printf("Can't open file.");
exit(1);
}
fwrite(&f,sizeof(float),1,fp);
printf("%f\n",f); //执行完此步,DOS屏幕显示正确,但文件file中内容错误
fread(&f,sizeof(float),1,fp);
printf("%f\n",f); //执行完此步,DOS屏幕和file文件均显示错误
flose(fp);
} 展开
1个回答
展开全部
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
if((fp=fopen("file","wb+"))==NULL)
更多追问追答
追问
没用,结果依然错误。
追答
#include<stdio.h>
void main()
{
FILE *fp;
float f=12.34;
if((fp=fopen("file","wb"))==NULL)
{
printf("Can't open file.");
exit(1);
}
fwrite(&f,sizeof(float),1,fp);
printf("%f\n",f); //执行完此步,DOS屏幕显示正确,但文件file中内容错误
fseek(fp,0L,SEEK_SET);//移动文件指针stream的位置
fread(&f,sizeof(float),1,fp);
printf("%f\n",f); //执行完此步,DOS屏幕和file文件均显示错误
fclose(fp);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询