2012-07-26 78 views
0

对不起,问这样一个简单的问题,但我想把一个wchar_T放入一个wstring,但是当我打印出来检查它时,我从wstring中得到垃圾。代码如下:将wchar_t转换为wstring

wchar_t windowsDir[255]; 
memset(windowsDir, NULL, sizeof(windowsDir)); 
GetWindowsDirectory(windowsDir, 255); 
std::wstring winDir(windowsDir); 

if (debug){ 
    wprintf(L"Windows Dir is %s\r\n", windowsDir); 
    wprintf(L"Windows Dir is %s\r\n", winDir); 
} 

据我从例子中可以知道我在做正确的事很害羞,我在屏幕上获得垃圾我不能工作了。

谢谢你,提前为您的帮助,

干杯,

尼尔

回答

1

您使用wprintf。此功能不能接受std::wstring。您永远不应该使用printf和朋友或任何变量参数函数的主要原因是它们完全不是类型安全的,并且除了任何C++标准库类型之外,不能处理非POD类型。

C++ IOstream将在这里完美地正常工作。

+0

谢谢;我用count << winDir.c_string – 2012-07-26 16:27:49