如何将C语言运行的结果存到TXT文本中

#include <stdio.h>
#include <math.h>
int main ()
{
double Km,um,a,b,c,d,Pi,Qi,Kkt,ukt,fs,Sw,Kf,uf,densf,densma,dens,Ksat,usat,Vp,Vs;
double pai=3.14159;
int i,j;
scanf("%lf%lf%lf%lf",&fs,&c,&Sw,&i);//需知砂岩的体积比例,孔隙度,水的饱和度,求干岩石令Xi=Ki=ui=0
for(j=1;j<=100;j++)
{
Km=(1.0/2)*(37*fs+20.9*(1-fs)+1.0/(fs/37+(1-fs)/20.9)); //利用V-R-H求取骨架体积模量,剪切模量
um=(1.0/2)*(44*fs+6.85*(1-fs)+1.0/(fs/44+(1-fs)/6.85));
d=(um/6)*(9*Km+8*um)/(Km+2*um);
a=um*(3*Km+um)/(3*Km+4*um);
b=um*(3*Km+um)/(3*Km+7*um);

Kf=1.0/(Sw/2.2+(1-Sw)/2.5);//已知水的饱和度Sw,利用WOOD公式求取混合流体的弹性模量和密度,基质的密度
uf=0;
densf=Sw+(1-Sw)*1.03; //混合液体密度
densma=2.65*fs+(1-fs)*2.05; //岩石基质密度
dens=(1-c)*densma+c*densf; //饱含孔隙流体岩石的等效密度
{

if (i<2) //spheres
{
Pi=(Km+(4.0/3)*um)/(Kf+(4.0/3)*um);
Qi=(um+d)/(uf+d);

}
else
{
if(i<3) //needles
{
Pi=(Km+um+(1.0/3)*uf)/(Kf+um+(1.0/3)*uf);
Qi=(1.0/5)*(4.0*um/(um+uf)+2*(um+b)/(uf+b)+(Kf+(4.0/3)*um)/(Kf+um+(1.0/3)*uf));

}
else
{
if(i<4) //disks
{
Pi=(Km+(4.0/3)*uf)/(Kf+(4.0/3)*uf);
Qi=(um+d)/(uf+d);

}
else // penny cracks

Pi=(Km+(4.0/3)*uf)/(Kf+(4.0/3)*uf+pai*a*0.01);
Qi=(1.0/5)*(1+8*um/(4*uf+pai*0.01*(um+2*a))+2*(Kf+(2.0/3)*(uf+um))/(Kf+(4.0/3)*uf+pai*0.01*a));

}
}
}
Kkt=Km*pow(1-c,Pi); //KT公式求取干岩石弹性模量
ukt=um*pow(1-c,Qi);

Ksat=Km*(Km/(Km-Kkt)+Kf/((Km-Kf)*c))/(1+Km/(Km-Kkt)+Kf/((Km-Kf)*c));//利用Gassmann求解饱含流体岩石的等效弹性模量

usat=ukt;
Vp=sqrt((Ksat+(4.0/3)*usat)/dens);
Vs=sqrt(usat/dens);
printf("Vp=%f,Vs=%f\n",Vp,Vs);
fs=fs+0.01;
}
return 0;

}

求大神

第1个回答  2014-05-10
简单,直接用管道的方式,比如你的程序为a.exe
那么直接, ./a.exe > 1.txt 直接写就入 1.txt中了
第2个回答  2014-05-10
用文件通道,就是在命令行运行程序后加 “程序 >> 运行结果.txt”
第3个回答  2014-05-10
使用C语言文件操作函数, 请参考http://blog.csdn.net/qianwenhao/article/details/2160014/
相似回答