我想将QString中的值赋给const std :: string
QString qfile("some value");
这是const std :: string变量
const std::string file
我使用的代码
file = qfile.toStdString();
上面的代码适用于普通的std :: string。但由于关键字'const'存在一些问题。我该如何解决?
答案 0 :(得分:7)
不要使用赋值运算符初始化std::string
对象,而是直接初始化变量。
const std::string file = qfile.toStdString();
除此之外,请确保您了解编码QString::toStdString()
使用的内容;与QString
不同,std::string
与编码无关(它是一串字节,而不是字符)。
答案 1 :(得分:1)
常量是具有固定值的表达式。
答案 2 :(得分:0)
您还可以通过复制const
的返回值来删除toStdString()
:
QString str("text");
std::string std_str(str.toStdString());