Я хочу присвоить значение в QString константе std::string
QString qfile("some value");
это константная переменная std::string
const std::string file
Код, который я использую
file = qfile.toStdString();
приведенные выше коды отлично работают для обычного std::string . Но есть некоторая проблема из-за ключевого слова 'const'. Как мне это решить?
const
. Или, если вы хотите, чтобы он был неизменным, не пытайтесь его изменить. - person Mike Seymour   schedule 27.06.2012const_cast
заставит его скомпилироваться, но попытка изменить объектconst
приводит к неопределенному поведению. - person Mike Seymour   schedule 27.06.2012Qt::toStdString()
по умолчанию преобразует строку в кодировку Latin1, и из-за этого любые символы, которые не могут быть представлены в кодировке Latin1, будут потеряны. Если вы используете этотstd::string
для имен файлов, вы не сможете обрабатывать файлы с именами, содержащими специальные символы. Вместо этого вы можете использоватьconst std::string file = qFile.toUtf8().constData();
. Но в Windows вы все равно не сможете использоватьstd::string
для файловых операций, потому что Windows не поддерживает должным образом UTF8. - person smerlin   schedule 27.06.2012const
? Нам действительно нужно это знать. - person ereOn   schedule 27.06.2012