memorystream - 字符串流,字符串,其他?

Posted

技术标签:

【中文标题】memorystream - 字符串流,字符串,其他?【英文标题】:memorystream - stringstream, string, others? 【发布时间】:2010-12-06 10:32:16 【问题描述】:

我正在通过通常的 c++/STL/iostream 语法读取二进制文件。 我正在将整个内容复制到一个动态分配的 char 数组中,到目前为止效果很好。

但是由于我想将部分内容作为行提供给程序的另一部分, 我认为坚持流媒体会更好/更容易,因为我不想乱搞 带有 cstring 函数和指针。

我现在的问题是,如何将读取的内容存储在内存中。在字符串流中?还是在字符串中? 哪个更合适?一个比另一个有什么优势或劣势?

提前致谢!

【问题讨论】:

好的,读完这个***.com/questions/132358/… 后复制很容易这个(如果是真的)还指出stringstreams 内部缓冲区是一个字符串(因此我猜这个名字)。我怎样才能为这个缓冲区保留字节 - 我在 ctor 中没有看到任何关于它的注释或关于保留函数的任何内容...... 【参考方案1】:

如果你想从它作为流读取,你还不如直接从文件中读取到字符串流:

std::stringstream data;
data << input_file.rdbuf();

将“input_file”的全部内容读入“data”。您可以像读取任何其他流一样从那里读取数据。

【讨论】:

谢谢,已经知道了。现在的问题是在我的班级中将字符串流存储为一种内存/字符缓冲区是否明智?还是我应该使用字符串? 那么 std::stringbuf 呢? 没有特定的理由不这样做,我只存储字符串流。

以上是关于memorystream - 字符串流,字符串,其他?的主要内容,如果未能解决你的问题,请参考以下文章

自动替换字符串流中的字符

对和字符串流

拆分包含逗号分隔条目的字符串流

stringstream字符串流的妙用

C++ 字符串流

从 MemoryStream 获取子字符串而不将整个流转换为字符串