无法在qt中使用fromStdString
我无法使用stdstring的函数。 qt助手中说,只有在qt配置为启用STL兼容性时,此运算符才可用。。但我不知道如何实现这一点。 请提供解决方案无法在qt中使用fromStdString,qt,Qt,我无法使用stdstring的函数。 qt助手中说,只有在qt配置为启用STL兼容性时,此运算符才可用。。但我不知道如何实现这一点。 请提供解决方案 int main(int argc, char *argv[]) { std::string read; QString monthsArr[12]; QStringList monthlist; std::ifstream readfile; readfil
int main(int argc, char *argv[])
{
std::string read;
QString monthsArr[12];
QStringList monthlist;
std::ifstream readfile;
readfile.open("/home/pcamdin/practice/qtcpp/qtprogs/qtcpp/months.txt");
for(int i=0; i<6; i++)
{
readfile >> read;
monthsArr[i] = fromStdString(read);
monthlist << monthsArr[i];
qDebug() << i+1 << ": " << monthsArr[i];
}
qDebug() << "the first " << monthlist.size() << " months of the year are " << monthlist;
}
STL支持在默认情况下至少在您自己构建时编译 除非我不知道4.8中发生了什么变化,否则fromStdString是QString的静态成员,所以您应该像这样称呼它
monthsArr[i] = QString::fromStdString(read);
仅在全局名称空间中调用fromStdString不会在4.7.3下编译。STL支持在默认情况下编译,至少在您自己构建它时编译 除非我不知道4.8中发生了什么变化,否则fromStdString是QString的静态成员,所以您应该像这样称呼它
monthsArr[i] = QString::fromStdString(read);
在4.7.3下,仅在全局命名空间中调用fromStdString不会编译。即使Qt配置了-no stl,您也可以与std::string和容器交互,它只会禁用一些语法。例如,您可以使用QString::fromLatin1some_std_string.c_str、some_std_string.size或QString::fromUtf8。。。或者从Local8bit。。。取决于std::string中数据的编码。这在任何情况下都是有利的,因为它使编码集中显式化。即使Qt配置了-no stl,您也可以与std::string和容器交互,但它只禁用一些语法糖。例如,您可以使用QString::fromLatin1some_std_string.c_str、some_std_string.size或QString::fromUtf8。。。或者从Local8bit。。。取决于std::string中数据的编码。这在任何情况下都是有利的,因为它使编码集中变得明确。为什么不使用QTextStream和QFile?要么重新编译Qt,要么使用Qt类,而不是@saeedThank you saeed和scai已经提到的STL类。我使用了QFile。为什么不使用QTextStream和QFile呢?要么你必须重新编译你的Qt,要么使用Qt类,而不是@saeedThank you saeed和scai已经提到的STL类。我用QFile。