我在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;

最佳答案

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

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


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

关于c++ - 在QT问题中声明StringStream,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5617231/

10-12 21:41