C++中关于文件的输出,要求每隔一定步数进行输出,并且输出的文件内容不能覆盖之前的内容
我写了一个简易的代码,来阐述我的问题:
#include "stdio.h"
#include "stdlib.h"
int main()
{
int i=0;
int snapshot=20;
double a[51]={0};
FILE *fp;
for(i=0;i<=1000;i++)
{
if(i%snapshot==0)
j=i/snapshot;
a[j]=a[j]+1;
fp=fopen("position.txt","r+");
if(fp!=NULL)
fprintf(position,"%f",a[j]);
fclose(fp);
}
}
a[50]表示某个粒子A的位置,现在我要求每隔20步就输出一次A的位置,结果输出到txt文本中,但是这样输出来的结果,后一次都会覆盖前一次,如果我想保留之前每一步的输出结果,例如说,i=0时,A的位置a[0]输出到position000.txt中;当i=20时,A的位置a[1]输出到position001.txt中;当i=40时,A的位置a[2]就输出到position002.txt中,当i=60时,A的位置a[3]就输出到position003.txt中;……如此循环……;最后i=1000时,A的位置a[50]就输出到position050.txt中。