2014-09-12 2 views
3

Как печатать CString на консоли? Пробовал этот код, но получил что-то вроде указателя.CString to std :: cout

.. 
#include <iostream> 
#include <atlstr.h> 

using namespace std; 
int _tmain(int argc, _TCHAR* argv[]) 
{ 

    CString a= "ddd"; 
    cout<<a.GetString(); 
} 

Output 00F56F0 

ответ

1

Как напечатать CString утешать? Пробовал этот код, но получил что-то , так как указатель печатается.

Приношу свои извинения. Я не закончил и был прерван. Очевидно, вам нужно преобразовать во временный CStringA (в противном случае это широкоформатный формат i.e wcout). Я не понимал этого, пока я не прочитал ваше сообщение (снова):

std::ostream& operator << (std::ostream& os, const CString& str) 
{ 
    if(str.GetLength() > 0) //GetLength??? 
    { 
    os << CStringA(str).GetString(); 
    } 
    return os; 
} 

Вы могли бы как это было предложено, конечно, просто использовать wcout:

std::ostream& operator << (std::wostream& os, const CString& str) 
{ 
    if(str.GetLength() > 0) //GetLength??? 
    { 
    os << CStringA(str).GetString(); 
    } 
    return os; 
} 

Затем использовать так:

std::wcout << str << std::endl; 
5

Использование следующего:

std::wcout << a.GetString(); 
2

Использование wcout для печати CString на консоль:

CString cs("Hello"); 
wcout << (const wchar_t*) cs << endl; 
Смежные вопросы