C ++ / CLI将CString的内容打印到控制台

时间:2011-04-18 20:31:19

标签: c++-cli cstring

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”。 TIA。

3 个答案:

答案 0 :(得分:5)

我猜你正在编译启用Unicode,但是printf是一个ANSI函数,所以它只打印字符串的第一个字符。使用_tprintf匹配您的_T字符串:

_tprintf(_T("%s"), cs3);

答案 1 :(得分:3)

Console::WriteLine(gcnew System::String(cs3)); 

答案 2 :(得分:0)

您需要在打印之前投射CString

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

这应该有效