如何将C程序输出结果保存在一个文件里?

liuwen20030412 2004-04-03 10:50:58
有这么一个程序我要将它的输出结果保存在E盘的filename.c文件中,下面的程序对吗?#include<stdio.h>
#include<math.h>
main()
{
FILE *fp;
double xa=0.0,xb=2.0,q=6.5,qq=0.0000028,d=0.000000002067,l=0.2,dti=0.0006,nn=61,d0=0.0007;

double s=0.0,h,x=xa,fa,fb,sum=0.0,kk,a0=0.0000012875,af=0.0000003848,aaa=0.000055064,de;

double f1[21],f2[21],ss[20],dh[20],u[20],k[20],qqq[20],z[10],aa[20],suma;

int i,j,n=20;

if((fp=fopen("e:\filename.c","w"))==NULL)
{printf("cannot open file\n");
exit(0);}

for(j=601;j<=700;j++)
{

x=xa;

q=j/100.0;

fa=1.0/(q*sqrt(2*3.1416))*exp(-(xa-1)*(xa-1)/(2*q*q));

fb=1.0/(q*sqrt(2*3.1416))*exp(-(xb-1)*(xb-1)/(2*q*q));

h=(xb-xa)/(2.0*n);

f1[0]=fa;

f2[0]=1.0/(q*sqrt(2*3.1416))*exp(-(x+h-1)*(x+h-1)/(2*q*q));

x=x+h;

s=0.0;

sum=0.0;

for(i=0;i<n;i++)

{

x=x+h;

f1[i+1]=1.0/(q*sqrt(2*3.1416))*exp(-(x-1)*(x-1)/(2*q*q));

x=x+h;

f2[i+1]=1.0/(q*sqrt(2*3.1416))*exp(-(x-1)*(x-1)/(2*q*q));
ss[i]=h/3.0*(f1[i]+f1[i+1]+4*f2[i]);
s=s+ss[i];
aa[i]=(xb-xa)/n*(i+1)*(a0-af)+af;
dh[i]=4*aa[i]/(3.1416*d0);
de=4*aaa/(3.1416*(0.01+nn*d0));
qqq[i]=qq*dh[i]*dh[i]*aa[i]/(aaa*de*de);
u[i]=qqq[i]/aa[i];
z[i]=u[i]*dti*dti/(d*l);
k[i]=1.62*pow(z[i],0.33)*d/dh[i];
sum=sum+ss[i]*qqq[i]*exp(-k[i]*aa[i]/qqq[i]);
}
suma=sum*nn;
ss[20]=h/3.0*(f1[19]+f1[20]+4*f2[19]);
s=s+ss[20];
kk=qq/aaa*log(qq/(sum*nn));
fprintf(fp,"q=%f,kk=%g,s=%g,suma=%g\n",q, kk,s,suma);
fclose(fp);
}
}




...全文
200 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuwen20030412 2004-04-08
  • 打赏
  • 举报
回复

学习就这样!
我举双手同意!
JetKingLau 2004-04-04
  • 打赏
  • 举报
回复
其他语句偶没认真看,但这句肯定有问题,
if((fp=fopen("e:\filename.c","w"))==NULL)
改成
if((fp=fopen("e:\\filename.c","w"))==NULL)
吧, \ 在 C/C++ 的字符串中是作为转义符来使用的,如 \0 表示字符串结束符,\r 表示回车,\n 表示换行,\t 表示一个 TAB 位,\\ 是作为路径的分隔符。

当然这些你肯定是知道的,只是有时候不小心输错,偶也经常会犯。
liuwen20030412 2004-04-04
  • 打赏
  • 举报
回复
但是不行呀!
lovebcb 2004-04-04
  • 打赏
  • 举报
回复
呵呵,是我错了。刚才不知道怎么回事,呵呵~
lovebcb 2004-04-04
  • 打赏
  • 举报
回复

呵呵,错误不只是时差说的一个转义符啊!
if((fp=fopen("e:\filename.c","w"))==NULL)
----------------------
哪里能这么写哈~


fp=fopen("e:\\filename.c","w");

if(fp == NULL)
{printf("cannot open file\n");
exit(0);}
wind_xu 2004-04-03
  • 打赏
  • 举报
回复
主要语句上没有问题。

551

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧