c语言数据写入文件
解决时间 2021-03-20 04:07
- 提问者网友:皆是孤独
- 2021-03-19 05:28
#include
#include
int main()
{ FILE *fpt;
int T=300;
double m=0.029,v,k=1.38464,f,a,b,c,d,e;
for(v=0;v<1000;v=v+0.1)
{a=m/(2*k*T);
b=pow(v,2);
c=4*pow(a,1.5);
d=a*b;
e=exp(-d);
f=c*b*e;
printf("%f\t,%f\n",v,f);
fpt = fopen("shuju1.txt","w");
fprintf(fpt,"%f,%f\n",v,f);
fclose(fpt);}
return 0;} 最终生成的文件只有循环体的最后一次循环数据,我想把每次循环的数据都导出来。
最佳答案
- 五星知识达人网友:人類模型
- 2021-03-19 05:40
对文件的操作放在循环外即可,w这中模式是每次都清空文件中数据的。
#include
#include
int main()
{
FILE *fpt;
int T=300;
double m=0.029,v,k=1.38464,f,a,b,c,d,e;
fpt = fopen("shuju1.txt","w");
for(v=0;v<1000;v=v+0.1)
{
a=m/(2*k*T);
b=pow(v,2);
c=4*pow(a,1.5);
d=a*b;
e=exp(-d);
f=c*b*e;
printf("%f\t,%f\n",v,f);
fprintf(fpt,"%f,%f\n",v,f);
}
fclose(fpt);
return 0;
}
全部回答
原因:
使用fopen时参数不正确,你是用 w参数,若文件存在则文件长度清为0,即该文件内容会消失。每次都是重新清空并写数据, 将w修改为a即可.
fopen函数说明见下方:
---------------
file * fopen(const char * path,const char * mode);
[编辑本段]函数说明
参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
mode有下列几种形态字符串:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
rb+ 读写打开一个二进制文件,只允许读写数据。
rt+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(eof符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的eof符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
我要举报
大家都在看
推荐资讯