c++ - 将窄字符串转换为宽字符串

标签 c++ string visual-c++ unicode

如何将窄的string 转换为宽的string

我试过这个方法:

string myName;
getline( cin , myName );
wstring printerName( L(myName) );  // error C3861: 'L': identifier not found
wchar_t* WprinterName = printerName.c_str(); // error C2440: 'initializing' : cannot convert from 'const wchar_t *' to 'wchar_t *'

但是我得到上面列出的错误。

为什么会出现这些错误?我该如何修复它们?

是否有任何其他方法可以将 narrow 字符串直接转换为 wide 字符串?

最佳答案

如果源是 ASCII 编码的,你可以这样做:

wstring printerName;
printerName.assign( myName.begin(), myName.end() );

关于c++ - 将窄字符串转换为宽字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6691555/

相关文章:

c++ - 使用模板生成 const 和 non-const 相同的方法?

c++ - 检查模板函数的数据类型

c++ - 为什么 `int ;` 在 C 中编译得很好,但在 C++ 中却不行?

c# - 具有动态命名参数的扩展方法

c++ - 修改 C 字符串 : access violation

c - 为什么在 "while"中使用常量时 MSVC 会生成警告 C4127 - C

c++ - 我怎么知道我是否需要删除 C++ 中的某些内容?

regex - 仅替换括号 (R) 内的某些字符

c++ - 正则表达式慢

c++ - 重用编译器前端的结果来加速多种配置/平台的 C++ 代码编译