C ++ / CLI Печать содержимого CString на консоль - PullRequest
4 голосов
/ 19 апреля 2011

C ++ новичок здесь с быстрым вопросом.Как распечатать содержимое CString на консоль?

При этом

int main(array<System::String ^> ^args)
{               
    CString cs1 = _T("Hy");
    CString cs2 = _T(" u");
    CString cs3 = cs1 + cs2;

    Console::WriteLine(cs3);    
    printf("%s", cs3);  
    return 0;
}

выводит «True» и «H» на консоли.ТИА.

Ответы [ 3 ]

5 голосов
/ 19 апреля 2011

Я предполагаю, что вы компилируете с включенным Unicode, но printf - это функция ANSI, поэтому она печатает только первый символ строки.Используйте _tprintf, чтобы соответствовать _T строкам:

_tprintf(_T("%s"), cs3);
3 голосов
/ 19 апреля 2011
Console::WriteLine(gcnew System::String(cs3)); 
0 голосов
/ 19 апреля 2011

Вам нужно наложить вашу CString перед печатью

printf("%s ", (LPCTSTR)cs3);

Это должно работать

...