首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在文件中写入的字符串流还是字符串流?

在文件中写入的字符串流还是字符串流?
EN

Stack Overflow用户
提问于 2015-07-15 09:21:32
回答 2查看 4.8K关注 0票数 0

要将数据从ostringstream写入ofstream,我必须编写如下内容:

代码语言:javascript
复制
std::ostringstream ss;
myFile<<ss.str();

另一方面,如果我使用stringstream,我可以直接访问缓冲区:

代码语言:javascript
复制
std::stringstream ss;
myFile<<ss.rdbuf();

问题是ostringstream::str()复制了字符串,这有点糟糕,因为在我的程序中有非常大的字符串,所以stringstream应该更好,因为我可以直接访问缓冲区进行读取。这里的人说,如果我们只处理输出操作,那么我们应该使用ostringstream而不是stringstream。我不能简单地使用字符串,因为我正在插入各种类型的数据。有人能给我一个如何处理这件事的建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-15 09:46:22

这里的人说,如果我们只处理输出操作的话,就应该在字符串流上使用字符串流。

使用更具体的ostringstream的主要原因是明确您的意图并避免错误。在这种情况下,需要stringstream来防止复制潜在的大字符串,所以只需使用它(小心)。

票数 3
EN

Stack Overflow用户

发布于 2015-07-15 10:00:45

ostringstream适用于数据进入流并且永远不会出来的情况。(当然,除了您实际需要的std::string对象之外。)

stringstream的目的是用于同时进行读写的地方。<< rdbuf()是从流中读取数据的一种方式,所以stringstream是完全合适的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31426392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档