中易网

C语言关于数据文件的保存

答案:3  悬赏:40  
解决时间 2021-02-18 22:17
Mozhi[N]是一个个数为N的数列。我想要把结果输出到"D:\\FFTDATA.txt中。
main()
{
……
SAVE(N, MOZHI);
}
void SAVE(int N,float *Mozhi)
{
FILE *fp;
int i;
if((fp=fopen("D:\\FFTDATA.txt","a"))==NULL)
{
printf("can't open file");
return;
}

for(i=0;i<N;i++)
fprintf(fp,"%f\n",Mozhi[i]);
fclose(fp);
}

运行结果是输出了文件,但是确实0字节。求解答
最佳答案
我运行过的,是有数据的,你可以运行一下我改写的
#include<stdio.h>
void SAVE(int N,float *Mozhi)
{
FILE *fp;
int i;
if((fp=fopen("D:\\FFTDATA.txt","a"))==NULL)
{
printf("can't open file");
return;
}

for(i=0;i<N;i++)
fprintf(fp,"%f\n",Mozhi[i]);
fclose(fp);
}

void main()
{
float S[3]={9,3,5};
SAVE(2, S);
}
全部回答
看你是什2么g意思了t。执行完程序关闭后下g次启动程序仍7要那个i值的话,你就要用文8件了e,因为0程序执行的数都是在内5存中0,程序结束,内2存中1存储的数据跟着就释放了s,要想保存你要的num,只有把他存储到外部介0质中2,存储为0文0件就是把你的num存储到外部介7质硬盘中3。具体怎么c存储,lz还是看书3吧,虽然只是个rfopen+fwrite的事,但也n不f是一g两句就能讲清楚的。另外你要是说在一f个x程序中7,让一h个a数在各个k分0函数中5都能使用,那就如 chengdu262 老兄说的,使用全局变量好了g。 v┃‘am辶v┃‘w≡哀asnp█b≌┃
#include #include #define debug //条件编译开关,为了程序的保险起见,如果程序无误则删除该条语句就ok int data[300]; //存放文件中的300个整数 int cnt = 0; //素数个数 float pjz1, pjz2; void readdata(char* filename,int data[]); void writedata(char* filename); void jsvalue(); void main() { char filename[] = "d:\\in.dat"; //可以根据具体情况自己写路径 writedata(filename); readdata(filename,data); jsvalue(); } void readdata(char* filename,int data[]) { file *fpr; int i; fpr = fopen(filename,"r"); for(i = 0; i < 300; i++) { fscanf(fpr,"%d",&data[i]); //格式化读文件 } fclose(fpr); } void writedata(char* filename) //写入300个四位数(1000-1299)到in.dat文件中 { file *fpw; int i; fpw = fopen(filename,"w"); for(i = 1000; i <= 1299; i++) { fprintf(fpw,"%d\n",i); //格式化写文件 } fclose(fpw); } void jsvalue() { long sumall = 0, sumprim = 0; int k, m, i, j; for(i = 0; i < 300; i++) //判断是否为素数:如果整数k在2~sqrt(k)之间没有因子,则k一定是素数 { k = data[i]; m = (int)sqrt(k); sumall += k; for(j = 2; j <= m; j++) { if(k % j == 0) //不是素数 break; } if(j > m) //是素数 { #ifdef debug //如果debug被宏定义,则编译下面语句,下同(检查素数判断是否正确) printf("%d\n",k); #else #endif //如果debug没被宏定义,则不编译 sumprim += k; cnt++; } } pjz1 = (float)sumprim / cnt; pjz2 = (float)(sumall - sumprim) / (300 - cnt) ; #ifdef debug printf("cnt = %d\nsumall = %ld\nsumprim = %ld\npjz1 = %f\npjz2 = %f\n",cnt, sumall, sumprim, pjz1, pjz2); //检查计算是否正确 #else #endif }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
去农村承包土地是不是一个创业的好选择
那一期runningman李光洙和池石镇发现金钟国拿
有多少女人会夹腿
忘归国际商务酒店-足疗保健SPA在哪里啊,我有
不要去破坏别人美好而本又不属于自己的“东西
1983年10月29日凌晨2点55分,请帮忙算命可以
武汉大学信息学部怎么翻译啊
学院路邮政所在什么地方啊,我要过去处理事情
1980年属猴是什么命
ipad air2指纹解锁的那一瞬间会出现一个黑影
谁有电视剧蓬莱八仙的资源?可以分享一下么
鸿运大酒家地址在哪,我要去那里办事
梦见我男朋友跟我回老家我老公也在家
快易典h16死机怎么办?怎么点也不动了,一按开
猿瑜伽导师联盟瑜伽导师资格证
推荐资讯
8的5次方怎么算
岳峰泉茶园在什么地方啊,我要过去处理事情
广东益邦物流有限公司怎么样?
机械电子工程专业考研大连理工与东南大学哪个
傲绿社区菜店(陕西路)我想知道这个在什么地方
为什么顺丰快递公司寄手机要检查了才决定是否
感觉好好玩
U盘 我的电脑里不显示 任务栏里显示
天蓬元帅下凡来。
殷保华写了什么书
黑鹰直升机跟f18战斗力很牛吗
内蒙闷倒驴如何开盖
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?