天刀 猎人:有关C语言 读取txt文件的问题

来源:百度文库 编辑:高考问答 时间:2024/05/03 06:11:16
我想用fread语句将c:\zhuang\result.txt读到xyz数组里,然后画xyz的图,但运行时从c:\zhuang\result.txt.txt中读不出数.请教哪位高手帮忙解决!程序如下:
// EZ.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"

double eez;
double x=1,y=1,z=1,q=1;
double xyz[10];
//float xyz[10];
FILE *fp1;

double EZ(double xx,double yy,double zz)
{
double ad=0.0, r=0.0;
ad=8.989e9;
r=sqrt((xx-x)*(xx-x)+(yy-y)*(yy-y)+(zz-z)*(zz-z));
r=1.0/(r*r*r);
eez=2*ad*q*(z-zz)*r;

return(0);
}

int main(int argc, char* argv[])
{
FILE *fp;
int n1,n2,i,j;
float rl,rw;
double xx,yy,zz;
char name[20];
double step1,step2;
//////////////////打开结果文件并从中读取 x,y,z,q
if((fp1=fopen("c:\\zhuang\\result.txt","r"))==NULL)
{printf("cannot open file\n"); exit(0);}
// fread(xyz,8,1,fp1);
fread(&x,8,1,fp1);
fread(&y,8,1,fp1);
fread(&z,8,1,fp1);
fread(&q,18,1,fp1);
fclose(fp1);
// for(i=0;i<4;i++)
// fread(&xyz[i],2,1,fp1);
// fclose(fp1);
// x=0.0;y=0.0;z=100.0;q=1.0;//试算用

// x=xyz[0];y=xyz[1];z=xyz[2];q=xyz[3];
printf("%f %f %f %f\n",x,y,z,q);
/////////////////
// x=0.0;y=0.0;z=100.0;q=1.0;//试算用
printf("用于绘图的文件名是(*.dat) :\n");
scanf("%s",name);
printf("长(Rl)= 宽(Rw)= \n");
scanf("%f %f",&rl,&rw);
n1=25,n2=25;
step1=0.5*rl/n1;step2=0.5*rw/n2;
fp=fopen(name,"wb");
zz=0.0;
for(i=-n2;i<n2+1;i++)
{yy=i*step2;
for(j=-n1;j<n1+1;j++)
{xx=j*step1;
EZ(xx,yy,zz);
if(j<n1) fprintf(fp,"%8.4e\t",eez);
if(j==n1) fprintf(fp,"%8.4e\n" ,eez);
}
}fclose(fp);

return(0);
}