C++ fprintf不写入文件

C++ fprintf不写入文件,c++,printf,C++,Printf,有人看到了吗,为什么printf工作正常时fprintf不写入文件 FILE* database; database = fopen("database.txt", "a+"); for (x=-200; x<200; x=x+10) { TH1F *hist_Deg = new TH1F("h1", "title", 250, -0.5, 249.5); for (j=5000; j<5010; j++) { sprintf(

有人看到了吗,为什么printf工作正常时fprintf不写入文件

 FILE* database;
  database = fopen("database.txt", "a+");



   for (x=-200; x<200; x=x+10)
    {     
TH1F *hist_Deg = new TH1F("h1", "title", 250, -0.5, 249.5);

 for (j=5000; j<5010; j++)

 {
      sprintf(filename,"electronsrough/105.000000MeV/x%d/y0/process%d.txt", x,j);

      FILE* pfile =fopen(filename,"r");

      while(!feof(pfile))
        {
          fscanf(pfile, "%lf /n", &p);

          hist_Deg->Fill(p);
          } 
fclose(pfile);

 }

 meana = hist_Deg->GetMean();


 f->SetPoint(i, x, meana);
 i=i+1;


 fprintf(database, "%f\n", meana);
 printf("%f\n", meana);

 delete hist_Deg;

} 
printf将meana输出到comman行,但是


文件database.txt已创建,但仍为空。

刷新并关闭数据库文件应该可以完成这项工作

fprintf(database, "%f\n", meana);
fflush(database);
fclose(database);

非常感谢。好的,如果我输了,当然我必须在循环中打开。作品还有一个问题:我现在总是写到文件的末尾。当我启动一个程序时,如何删除所有条目?@Katju而不是用fopen打开…,a+专门表示append,用w或w+打开意味着write。