C 文件已打开但未写入

C 文件已打开但未写入,c,printf,C,Printf,我读了很多网站,尝试了所有可能的解决方案,但是代码打开了文件,但没有写fprintf行,非常感谢您的帮助 int Function(){ FILE *outputtfilepointer; outputtfilepointer = fopen("output.csv", "w"); fprintf(outputtfilepointer,"Iteration,5,6,%d,%f\n",5,0.6); fclose (outputtfilepointer); ret

我读了很多网站,尝试了所有可能的解决方案,但是代码打开了文件,但没有写fprintf行,非常感谢您的帮助

int Function(){
  FILE *outputtfilepointer;

  outputtfilepointer = fopen("output.csv", "w"); 
  fprintf(outputtfilepointer,"Iteration,5,6,%d,%f\n",5,0.6);    

  fclose (outputtfilepointer);
  return 0;
}

您是否阅读了和的文档?这些功能可能会失败,您应该测试:

int Function(){
  FILE *outputtfilepointer = fopen("output.csv", "w"); 
  if (!outputfilepointer) { perror("fopen"); exit(EXIT_FAILURE); };
  if (fprintf(outputtfilepointer,"Iteration,5,6,%d,%f\n",5,0.6)<0)
     { perror("fprintf"); exit(EXIT_FAILURE); };  
  if (fclose (outputtfilepointer)) 
     { perror("fclose"); exit(EXIT_FAILURE);}
  return 0; 
}
int函数(){
文件*OutputFilePointer=fopen(“output.csv”,“w”);
如果(!outputfilepointer){perror(“fopen”);退出(退出失败);};

如果(fPruttf(OutPuttFielPosix),迭代,5,6,%d,%f\n,5,0.6)这是C代码,不是C++。你的C++标签是错误的。它也是C++(我刚用C++编译器编译的,它对我来说是正确的)。那么另一个原因可能是什么呢?我试过很多次了。我能想到的唯一一件事可能是您的文件系统已满。但这似乎不太可能。
fopen
返回NULL并在失败时设置
errno
。您应该能够确定错误。非常感谢,经过测试,我确信仍然会打开文件,因为文件的修改时间已更改,但不在文件中写入行有趣的是,我在另一个函数中使用相同的代码,它打开文件并写入文件,但在这个函数中,它不工作。是的。顺便问一下,您使用的是哪个操作系统、文件系统、编译器、优化标志?请编辑您的问题以改进它!添加了您的代码,不会退出,因此如果我想这是真的,我真想知道发生了什么事