c语言:将数据存储为txt出问题

我先写了一个存储函数,然后当满足一定条件的时候调用它,

 void save_txt(FILE*fp,double*arr,int num)
{
    int i;
    //-----------------------------------------fp为文件地址,arr数组的地址,数组元素个数-------------------------------
    for(i=0;i<=num-1;i++)
    {
        fprintf(fp,"%.5f\n",arr[i]);
    }
}

当满足一定条件的时候调用存储函数,下面这个过程是在循环中,假设我只循环了两次,第一次Nnode2tat==1,第二次Nnode2tat==0,照理来说第二次不运行存储函数,但是第一次得到的txt文件和第二次得到的txt文件不同,这是什么原因?

 char*filename="E:/RCL_data/xtra.txt";FILE*fp=fopen(filename,"w+");
    if(Nnode2tat==1){
        save_txt(fp,veh_mod_arrx.Data, veh_mod_arrx.size-1);}

你是不是没有对Nnode2tat进行修改值啊?