2011-02-28 4 views
2

나는 4 개의 값을 가지고 있습니다 : A,B,C,D. 이러한 값을 사용하여 일련의 계산을 수행 한 후 결과가 언제 완료되었는지 추적하기 위해 ABCD_MM.DD.YY.txt 형식의 파일에 결과를 출력하도록합니다.C - 파일 이름에 현재 날짜 입력하기

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"); 
} 

답변

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