gpt4 book ai didi

C++/将 std::string 和 wchar* 连接到 wchar*

转载 作者:搜寻专家 更新时间:2023-10-31 01:11:13 27 4
gpt4 key购买 nike

我想连接一个 std::stringWCHAR*,结果应该在 WCHAR* 中。

我试过下面的代码

size_t needed = ::mbstowcs(NULL,&input[0],input.length());
std::wstring output;
output.resize(needed);
::mbstowcs(&output[0],&input[0],input.length());
const wchar_t wchar1 = output.c_str();
const wchar_t * ptr=wcsncat( wchar1, L" program", 3 );

我遇到了以下错误

error C2220: warning treated as error - no 'object' file generated

error C2664: 'wcsncat' : cannot convert parameter 1 from 'const wchar_t *' to 'wchar_t*'

最佳答案

如果您调用 string.c_str()要获取原始缓冲区,它将返回一个 const 指针以指示您不应尝试更改缓冲区。绝对不应该尝试将任何内容连接到它。使用第二个字符串类实例,让运行时为您完成大部分工作。

std::string input; // initialized elsewhere
std::wstring output;

output = std::wstring(input.begin(), input.end());
output = output + std::wstring(L" program"); // or output += L" program";
const wchar_t *ptr = output.c_str();

还要记住这一点。一旦“output”超出范围并析构,“ptr”将失效。

关于C++/将 std::string 和 wchar* 连接到 wchar*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15150946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com