在QT中声明StringStream问题

发布于 2024-10-31 12:26:20 字数 670 浏览 3 评论 0原文

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

I am having problem in declaring StringStream in QT.
Here is my code:

 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;

the error message is:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

樱娆 2024-11-07 12:26:20

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

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

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

Mixing QString and std::string or related is not generally a good idea. You should implement that with QString methods like replace( QChar ch, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive).

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

BTW, you can't use QString directly with any of the standard std streams, there are no overloads defined. The qPrintable function can help though. And you need to include <sstream> to use std::stringstream.

喜你已久 2024-11-07 12:26:20

包含 以使用 stringstream 类。

尽管我确实同意 @Mat 的观点,但使用 Qt 的 QString 方法来实现此特定目的可能是一个好主意。

Include <sstream> to use the stringstream class.

Though I do agree with @Mat that it would probably be a good idea to use Qt's QString methods for this particular purpose.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文