QString в const std::string
Я хочу присвоить значение в QString const std:: string
QString qfile("some value");
это переменная const std:: string
const std::string file
Код, который я использую
file = qfile.toStdString();
Приведенные выше коды отлично работают для обычной std::string . Но есть некоторая проблема из-за ключевого слова "const". Как мне это решить?
3 ответа
Решение
Не используйте оператор присваивания для инициализации std::string
объект, а скорее инициализировать переменную напрямую.
const std::string file = qfile.toStdString();
Помимо этого, пожалуйста, убедитесь, что вы знаете, какая кодировка QString::toStdString()
использует; В отличие от QString
, std::string
не зависит от кодировки (это строка байтов, а не символов).
Константы - это выражения с фиксированным значением.
Вы также можете избавиться от const
сделав копию возвращаемого значения toStdString()
:
QString str("text");
std::string std_str(str.toStdString());