2010-08-19 64 views
3

我想將某些東西寫入.c文件中的.txt文件,但需要用當前時間戳命名該文件作爲後綴,就像filename_2010_08_19_20_30一樣。所以我必須首先定義文件名字符數組,並自己處理文件名?一個一個地分配字符?如何將時間轉換爲c中的c字符串?

有沒有簡單的方法可以做到這一點?

回答

9

有一個叫做strftime的函數,它存在用於將時間值寫入人類可讀字符串的明確目的。文檔:http://linux.die.net/man/3/strftime

一個例子:

#include <time.h> 
#include <stdio.h> 

int main() 
{ 
    FILE* file; 
    char filename[128]; 
    time_t now; 
    struct tm tm_now; 

    now = time(NULL); 
    localtime_r(&now, &tm_now); 

    strftime(filename, sizeof(filename), "filename_%Y_%m_%d_%H_%M.txt", &tm_now); 

    file = fopen(filename, "w"); 

    fprintf(file, "Hello, World!\n"); 

    fclose(file); 

    return 0; 
} 
2
time_t timet; 
    struct tm * timeinfo; 
    char buffer [32]; 

    time (&timet); 
    timeinfo = localtime(&timet); 

    strftime(buffer,32,"_%Y_%m_%d_%H_%M",timeinfo); 
相關問題