我在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;
最佳答案
混合QString
和std::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/