我讀從通過控制檯用戶的文件目錄,我必須存儲在一個pxcCHAR*
變量的值,這是SDK的typedef
爲wchar_t*
。轉換的std :: string到wchar_t的的一個typedef *
我發現我可以通過以下操作完成從std::string
到std::wstring
的轉換。
#include <iostream>
int main(){
std::string stringPath;
std::getline(std::cin, stringPath);
std::wstring wstrPath = std::wstring(stringPath.begin(), stringPath.end());
const wchar_t* wcharPath = wstrPath.c_str();
return 0;
}
當我運行這段代碼時,我通過調試看到了這些值。
stringPath= "C:/Users/"
wstrPath= L"C:/Users/"
wcharPath= 0x00b20038 L"C:/Users/"
這個值連接到wcharPath
的前面來自哪裏?
此外,
因爲pxcCHAR*
是wchar_t*
一個typedef
,我認爲這將是好簡單地做到這一點:
pxcCHAR* mFilePath = wcharPath;
不過,我得到一個消息,說「常量爲wchar_t *」不能用於初始化「pxcCHAR *」類型的實體。
我希望隱式轉換工作,但事實並非如此。我怎樣才能克服這個錯誤?
[轉換Unicode字符串,反之亦然(https://stackoverflow.com/questions/4786292/converting-unicode-strings-and-vice-versa)的可能的複製 –
在討論「轉換」的字符串之間沒有點類型,而無需指定您在轉換的任何一側使用的編碼。 – MrEricSir