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

问题描述:

我有4个值:A,B,C,D。在对这些值进行一系列计算之后,我希望我的代码以ABCD_MM.DD.YY.txt的形式输出结果,以跟踪何时完成。C - 将当前日期放在文件名中

我不太清楚在C中做到这一点的最佳方法。我有一个使用itoa()的“工作”版本,它不是一个标准的C函数,并且会在机器上无法识别(并且已经消失)编译时比我的。

这是我有这样做的代码,有人可以帮助一个更好的(和普遍接受)的方式?字符数组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);