0

我得到这样的系统时间:

time_t t = time(0); 
struct tm* now = localtime(&t);
TCHAR* tInfo = new TCHAR[256];
swprintf_s(tInfo
    , 256
    , _T("Current time: %i:%i:%i")
    , now->tm_hour
    , now->tm_min
    , now->tm_sec);

然后在屏幕上显示:

std::cout << tInfo << std::endl; 

但是插入当前时间:12 :57:56我得到了:屏幕上的0x001967a8。我做错了什么?

4

3 回答 3

4

您正在尝试打印“宽”字符串。您需要使用:

std::wcout << tInfo << std::endl;

“窄”版本cout不知道“宽”字符,因此只会打印地址,就像您尝试打印其他随机指针类型一样。

于 2013-08-07T09:05:17.353 回答
3

尝试:

std::wcout << tInfo << std::endl; 
于 2013-08-07T09:02:57.580 回答
0

C++ 与 C 共享其日期/时间函数。tm 结构可能是 C++ 程序员最容易使用的结构 - 以下打印今天的日期:

#include <ctime>
#include <iostream>
using namespace std;

int main() {
time_t t = time(0);   // get time now
struct tm * now = localtime( & t );
cout << (now->tm_year + 1900) << '-' 
     << (now->tm_mon + 1) << '-'
     <<  now->tm_mday
     << endl;
}
于 2013-08-07T09:07:36.400 回答