如何从 QString 获取常量字符 *
How to obtain const char * from QString
我从带有UTF8编码的XML文件中读取了一个字符串。我将此值存储在QString
对象中,并将其与其他一些信息连接起来。我可以在QtCreator调试器中看到QString
保存所需的值。
我需要将此字符串传递给另一个接受const char *
参数的库。请问我如何获得const char *
?我试过toLocal8bit()
,toLatin1()
,toUtf8()
都没有运气。好像我错过了什么...
我需要将此字符串传递给另一个接受常量字符的库 *论点。请问我如何获得常量字符 *?我尝试过Local8bit(),toLatin1(),toUtf8()都没有运气。好像我是 缺少一些东西...
因为如果你尝试这些,你只会得到一个QByteArray
而不是一个const char*
。你可以在你得到的QByteArray
上使用 constData() 方法,然后你会得到想要的结果。
混合std::string
和QString
是没有必要的,因此最好通过qt类型(QString -> QByteArray -> const char*
)而不在这里引入std::string
。
你在哪里使用 toLocal8bit()
,toLatin1()
或toUtf8()
取决于您的编码,因此这是一个与这里的主要问题不同的问题。他们都会给你一个QByteArray
。
注意:您应该避免使用toAscii()
,因为它在Qt 5中已弃用。
相关文章:
- 如何循环访问常量字符**?
- constexpr 函数获取常量字符*
- 如何计算常量字符**中的总字符数?
- QDial:如何将 int 值传递给需要常量字符*的 Qfile?
- 为什么 std::string_view 比常量字符*快?
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 在编译时将常量字符* 转换为常量 char_type*
- 将字符串数组传递给接受常量字符**的函数
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 字符串强制转换为常量字符*
- 使用常量字符*时退出代码 139
- 为什么我可以隐式地将字符*转换为常量字符*,但不能将无符号字符*
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法<string>从"常量字符 []"转换为<类名>
- 初始化常量字符* 数组
- 常量字符*的性质是什么?
- C++ 获取向量中常量字符* [ ] 的长度
- 无法将参数 1 从 WCHAR 转换为常量字符 *
- 如何在 c++ 中将向量转换为<string>常量字符* const*?
- C++将常量字符* 指针数组传递给对象