C – 将当前日期放在文件名中

我有4个值: A,B,C,D 。 在使用这些值进行一组计算之后,我希望我的代码将结果输出到ABCD_MM.DD.YY.txtforms的文件中,以跟踪它何时完成。

我不太确定在C中做到这一点的最佳方法。我有一个使用itoa()的“工作”版本,它不是标准的C函数,并且会在我的机器以外的其他机器上运行(并且已经消失)编译时

这是我执行此操作的代码,有人可以帮助更好(并且普遍接受)的方式吗? char数组name是使用全局范围定义的。

 void setFileName(){ time_t now; struct tm *today; char date[9]; //get current date time(&now); today = localtime(&now); //print it in DD.MM.YY format. strftime(date, 15, "%d.%m.%Y", today); char buff[20]; char vars[20]; //put together a string of the form: //"ABCD_DD.MM.YY.txt" strcpy(vars, itoa(A, buff, 20)); strcat(vars, itoa(B, buff, 20)); strcat(vars, itoa(C, buff, 20)); strcat(vars, itoa(D, buff, 20)); strcpy(name, vars); strcat(name, "_"); strcat(name, date); strcat(name, ".txt"); } 

 char filename [ FILENAME_MAX ]; snprintf(filename, FILENAME_MAX, "%d%d%d%d_%s.txt", A, B, C, D, date);