2012-05-24 20 views
0

因此,我正在編寫一個程序來模仿linux中的「find」命令。我有一切照顧,但我不知道如何從ctime,mtime和atime格式化字符串。從stat(系統調用)格式化mtime

我知道的參數是結構time_t的,但我不能找到將其轉換爲一個字符串formatable。的我有什麼

部分如下。它不會工作,因爲錯誤「錯誤:不能轉換'__time_t'到'const tm'的參數'4'到'size_t strftime(char *,size_t,const char *,const tm *)'

理想情況下,我想是這樣的:

cout << strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", (&sb.st_mtime)); 

其中sb是統計結構應該格式打印:HH:MM:SS-MM/DD/YY

我敢肯定的答案是簡單的東西,但我無法弄清楚

回答

0

你必須做的幾個步驟:

struct tm *mytm = localtime(&sb.st_mtime); 
strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", mytm); 
cout << mBuf; 

當然,調用localtimestrftime可以組合成一個單一的電話:

strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", localtime(&sb.st_mtime)); 
+0

好極了!謝謝! – twsmale