在QT问题中声明StringStream

时间:2011-04-11 05:46:46

标签: c++ qt stringstream

我在QT中声明StringStream时遇到问题。 这是我的代码:

 std::stringstream ss;
                 for (int i = 0; i <= path.length()-1; ++i)
                 {
                    if (path[i] == '\\')
                    {
                        ss << "\\\\";
                    }
                    else
                    {
                    ss << path[i];
                    }
                 }
                    path = QString::fromStdString(ss.str());//store the stringstream to a string
         return path;

错误信息是:

aggregate 'std::stringstream ss' has incomplete type and cannot be defined;

2 个答案:

答案 0 :(得分:3)

混合QStringstd::string或相关通常不是一个好主意。您应该使用replace( QChar ch, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive)QString方法实现该方法。

path.replace('\\', "\\\\");

顺便说一句,您不能将QString直接与任何标准std流一起使用,也没有定义过载。 qPrintable函数可以提供帮助。您需要包含<sstream>才能使用std::stringstream

答案 1 :(得分:1)

包含<sstream>以使用stringstream类。

虽然我同意@Mat,但为了这个特殊目的,使用Qt的QString方法可能是一个好主意。