| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 804 人关注过本帖
标题:两个函数交替在同一个txt写入数据,怎么做?
只看楼主 加入收藏
troyzyc
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-7-4
结帖率:56.6%
收藏
已结贴  问题点数:7 回复次数:1 
两个函数交替在同一个txt写入数据,怎么做?
我想当m=1时,经过accumulation、 backtrack函数载入m=1时的参数得到放在u[ii]的数据,然后写入u.txt。然后再在m=2时,经过accumulation、 backtrack函数载入m=2时的参数得到放在u[ii]的数据,然后在前者内容之后继续写入u.txt。
我的程序结果:写在u.txt的m=1时的数据正常,但是m=2时写入的数据都是0。
网上看有说fseek定位文件末尾,有说fflush函数,那位大神能给出明确指点?使得m=2时的数据能够正常的接着写在m=1数据之后。
       for(m=1;m<=2;m++)                           //分2段变化扫描范围,求时差
       {   
        if(m==1)
           {
        for (l=0;l<(nl*m);l++)                 //nl=20,40,60,80,100
        {
            for( i=0 ; i<nipssec ; i++)
            {
                is=i+l;
                //if(is>=nips) is=nips;               
                e31[tr][l][i]=(datp[i]-dats[is])*(datp[i]-dats[is]);  //ealloc3float(最低级,中级,最低级),但是在实际应用的数组e3[最高级][中级][最低级],和开辟时ealloc3float刚好相反。
                dvh1[l][i]=e31[tr][l][i];        
            }
        }
                accumulation(dacc1,dvh1,nl,nipssec,bv);     /*dacc[nl][nip],dvh[nl][nip],函数形参的输出为dacc[nl][nip]放结果累积误差*/
                backtrack(dacc1,dvh1,u,nl,nipssec,bv);      /*backtrack的输出是各道的u[nip]*/        
        for(ii=0 ;ii<nipssec ;ii++)
                {         
                        fprintf(fp,"%f\n",u[ii]*0.001);           //在速度比=2时,前500个采样点的时差都是0!!!直到前600个时,才会零星出现时差。
                }
               
             }


           else if(m==2)
               {
                for (l=0;l<40;l++)                 //nl*2=40
                 {
                        for( i=(1250*(m-1)) ; i<(1250*m) ; i++)         //1250-2500
                        {
                                is=i+l;                        
                                e32[tr][l][i]=(datp[i]-dats[is])*(datp[i]-dats[is]);  //ealloc3float(最低级,中级,最低级),但是在实际应用的数组e3[最高级][中级][最低级],和开辟时ealloc3float刚好相反。
                                dvh2[l][i]=e32[tr][l][i];
                        }
                 }            
                accumulation(dacc2,dvh2,nl*m,nipssec,bv);     /*dacc[nl][nip],dvh[nl][nip],函数形参的输出为dacc[nl][nip]放结果累积误差*/            
                backtrack(dacc2,dvh2,u,nl*m,nipssec,bv);      /*backtrack的输出是各道的u[nip]*/               
                for(ii=0 ;ii<nipssec ;ii++)
                {
                        fprintf(fp,"%f\n",u[ii]*0.001);           //在速度比=2时,前500个采样点的时差都是0!!!直到前600个时,才会零星出现时差。
                }
        
              }
         
       }   //对应分2段的for循环的括号
        fprintf(fp,"\n");  /*在不同道的时差输出之间加上一个换行*/
   
搜索更多相关主题的帖子: 函数 txt 写入 数据 for 
2017-09-20 20:49
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:7 
写入时观察一下数据是否为0
或者直接写入一个常数(如123.456),再读出看看是否正常写入。
2017-09-21 05:38
快速回复:两个函数交替在同一个txt写入数据,怎么做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020417 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved