所以我正在编写一个程序来模仿linux中的“find”命令。我已经完成了所有工作,但我无法弄清楚如何从ctime,mtime和atime格式化字符串。
我知道参数是struct time_t,但我找不到将它转换为可形式化的字符串。
我的部分内容如下。由于错误“错误:无法将'__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是stat结构。它应该以以下格式打印:HH:MM:SS-MM / DD / YY
我确信答案很简单,但我无法理解。
答案 0 :(得分:0)
您必须分几步完成:
struct tm *mytm = localtime(&sb.st_mtime);
strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", mytm);
cout << mBuf;
当然,对localtime
和strftime
的通话可以合并为一个电话:
strftime(mBuf, 18, "%I:%M:%S-%m/%d/%y", localtime(&sb.st_mtime));