cout一个字符串获取地址而不是值

时间:2014-06-03 05:08:12

标签: c++ macros cout

有一个宏定义如下:

#ifdef UNICODE
typedef wchar_t     TCHAR;
#define TEXT(quote) L##quote
#else
typedef char        TCHAR;
#define TEXT(quote) quote
#endif

当我尝试使用std :: cout打印消息时如下:

TCHAR* test = TEXT("test");
cout << test;

我得到的地址如00D82110而不是值“test”。

任何人都可以提出任何建议我如何在这里打印价值?非常感谢!

1 个答案:

答案 0 :(得分:3)

对于宽字符,您需要使用wcout代替cout。这样做:

#ifdef UNICODE
    typedef wchar_t     TCHAR;
    #define TEXT(quote) L##quote
    #define COUT        wcout
#else
    typedef char        TCHAR;
    #define TEXT(quote) quote
    #define COUT        cout
#endif

然后:

TCHAR* test = TEXT("test");
COUT << test;