【发布时间】:2021-10-28 02:24:26
【问题描述】:
在 main 中,我有一个包含 unicode 字符的 wstring mystr。
int main()
{
std::wcout << std::hex << 16 << endl;
std::wstring mystr = L"abc - ";
result = myfun(mystr);
// here I want to print out my variable result
//std::wcout << hex<<result;
}
我还有一个函数 myfun ,它接受这个 wstring 并使用 incrementfun 函数打印出用括号括起来的每个字母(十六进制!)。这工作正常。
std::wstring myfun(std::wstring mystr){
wchar_t* ptrToCC = &mystr[0] ;
std::wstring Out ;
while (*ptrToCC != 0)
{
std::cout << "(" << std::hex << *ptrToCC << ")"; // first print is OK
ptrToCC = incrementfun(ptrToCC);
}
Out = "(" + std::hex + *ptrToCC + ")" // none of this not works
Out = "(" + *ptrToCC + ")";
Out << "(" << std::hex << *ptrToCC << ")";
return Out;
}
在第一次打印中,此函数打印出以下行,这很好
(61)(62)(63)(20)(2d)(20)
现在我想使用函数 myfun 将值返回给 main,我尝试将值读入变量以将其传回。但我无法将它们读入变量,因此我无法在 main.xml 中打印它。 我如何读取这些值并将它们以 HEX 形式打印出来?
【问题讨论】:
-
使用 wstringstream.