Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在qt中使用fromStdString_Qt - Fatal编程技术网

无法在qt中使用fromStdString

无法在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

我无法使用stdstring的函数。 qt助手中说,只有在qt配置为启用STL兼容性时,此运算符才可用。。但我不知道如何实现这一点。 请提供解决方案

 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。