你閱讀的文檔fopen(3)和fprintf(3)?這些功能可能會失敗,你應該測試:的fopen
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;
}
測試失敗要求(即不容易發生)。很多人 (包括我)都是跛腳,所以不要打擾測試失敗fprintf
和fclose
,因爲它不常見。
你需要一個#include <stdlib.h>
爲exit
當然,閱讀每一個功能您正在使用,例如文檔也fclose(3),perror(3),exit(3)
通知的最小模式來處理錯誤情況:打印使用perror
(到stderr的)一個errno
相關消息然後exit
。許多嚴重的項目正在做更復雜的事情(例如,使用strerror(errno)
和一些錯誤處理程序longjmp
...)
BTW,你應該與所有警告和調試信息編譯(如gcc -Wall -g
)和使用調試器(gdb
) 。在Linux上,您也可以使用valgrind,strace(1),ltrace(1)
這是C代碼,而不是C++。你的C++標籤是錯誤的。 – 2014-10-03 05:09:16
這也是C++(我剛剛編譯它與我的C++編譯器,它適用於我) – 2014-10-03 05:10:01
那麼可能是另一個原因?我多次嘗試 – user1450005 2014-10-03 05:10:42