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 вместо значения "тест".
Кто-нибудь может дать какие-либо предложения, как я могу напечатать значение здесь? Большое спасибо!
1 ответ
Вам нужно использовать 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;