streambuf相关内容

如何在C++中创建既处理输入又处理输出的流?

我正在尝试创建一个既是输入流又是输出流的类(如std::cout和std::cin)。我试图重载操作符>,但后来我明白了,编写这样的代码并不明智(因为这将是重写C++流的一种方法),而且当像std::basic_iostream、std::basic_ostream、std::basic_istream这样的类在C++标准库中可用时,维护是非常困难的,因为我必须为每种类型重载操作符。因此, ..
发布时间:2022-09-05 16:45:47 C/C++开发

使用 Boost Asio 从串口读取

我想使用 boost.asio 检查串行端口上的传入数据包.每个数据包都以一个字节长的标头开始,并指定已发送的消息类型.每种不同类型的消息都有自己的长度.我要编写的函数应该不断地监听新的传入消息,当它找到一个它应该读取它,并调用其他函数来解析它.我目前的代码如下: void check_for_incoming_messages(){boost::asio::streambuf 响应;boost ..
发布时间:2022-01-18 14:25:45 C/C++开发

将流缓冲的内容复制到字符串

显然 boost::asio::async_read 不喜欢字符串,因为 boost::asio::buffer 的唯一重载允许我创建 const_buffers,所以我坚持将所有内容读入流缓冲. 现在我想将 streambuf 的内容复制到一个字符串中,但它显然只支持写入 char* (sgetn()),使用 streambuf 创建一个 istream 并使用 getline(). 有 ..
发布时间:2021-12-24 15:08:15 C/C++开发

如何为自定义 istream/streambuf 实现 seekg()?

十年前我曾经是 C++ 专家,但在过去的 10 年里我一直在编写 Java.我刚刚开始了一个使用小型第三方 XML 解析器的 C++ 项目.XML 解析器接受 STL istream.我的 XML 数据来自 Windows COM IStream.我以为我会做正确的事情并创建一个适配器来获取 IStream 数据并通过 istream 将其呈现给 XML 解析器. 我遵循了 http://w ..
发布时间:2021-10-01 19:41:41 C/C++开发

“内部"与“内部"之间的区别与“相关"流缓冲区

来自 http://www.cplusplus.com/reference/ios/ios/rdbuf/: 某些派生的流类(例如stringstream和fstream)维护它们自己的内部流缓冲区,它们在构造时与之关联.调用此函数以更改关联的流缓冲区对该那个内部流缓冲区无效:该流将具有一个关联的流缓冲区不同于其内部流缓冲区(尽管流的输入/输出操作始终使用此成员函数返回的关联的流缓冲区). ..
发布时间:2021-05-17 18:52:13 C/C++开发

从ostringstream传递到istringstream的技巧

我尝试制作一个压缩/解压缩模块,然后使用istringstream进行压缩,并使用ostringstream进行解压缩。 我的问题是在用压缩数据填充istringstream之后,我无法将此流转换为ostringstream。我尝试: iss.rdbuf(oss.rdbuf()); 作为输入和输出类型匹配,但不起作用。 您有任何想法吗? 预先感谢。 解决方案 ..
发布时间:2020-10-09 02:37:31 C/C++开发

使用Boost Asio从串行端口读取

我想使用boost.asio在串行端口上检查传入的数据包.每个数据包都将以一个一字节长的标头开始,并指定已发送的消息类型.每种不同类型的消息都有其自己的长度.我要编写的函数应不断侦听新传入的消息,当发现该消息时,应该读取该消息,并调用其他函数对其进行解析.我当前的代码如下: void check_for_incoming_messages() { boost::asio::strea ..
发布时间:2020-09-22 06:48:00 C/C++开发

使用boost :: asio :: streambuf

寻找boost :: asio(和他自己的boost)决定编写异步服务器.为了存储传入的数据,我使用boost :: asio :: streambuf. 在这里,我有一个问题.当我从客户端收到第二条消息时,随后我看到缓冲区中包含来自先前消息的数据. 虽然我在输入缓冲区调用了Consume方法.怎么了? class tcp_connection // Using shared_ptr and ..
发布时间:2020-09-22 06:47:56 C/C++开发

什么是“混淆”流缓冲区?

什么是“别名流缓冲区”?我在 answer的评论中遇到了该词我的。 解决方案 我以前从未听说过该术语,但是在您引用的线程中, 的使用者也给出了一个示例: 的两个流使用相同的streambuf。 当然,只是因为两个流不使用相同的 streambuf,并不意味着写入到它们中的数据最终不会在同一位置出现 ;他们没有为 相同的接收器加上别名,如果那是什么意思。过滤 个stream ..
发布时间:2020-06-03 22:11:36 C/C++开发

编译问题C ++

嗨,伙计们。 我需要编译一些项目。 我从那里安装Visual C ++ 6.0 + Microsoft Platform SDK 2003 http://www.microsoft.com/downloads/en/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en #requirements ..
发布时间:2016-11-02 01:31:51 C/C++开发

为自定义流类编写操纵器

我编写了一个自定义流类,它输出缩进的文本,并具有可以更改缩进级别的操纵器。所有缩进的工作都在一个自定义流缓冲区类中实现,它由流类使用。缓冲区是工作(即文本缩进在输出),但我不能让我的操纵器工作。我在很多地方阅读ostream(我的类扩展)重载操作符 ..
发布时间:2016-10-30 18:52:55 C/C++开发

我的实现overflow()有什么问题?

我想实现一个流缓冲区,我有麻烦使 overflow()工作。我调整缓冲区10个字符,并使用 setp 重置缓冲区。然后我将指针增加回我们离开的地方。由于某种原因,输出不正确: template ; class stringbuf:public std :: basic_stri ..
发布时间:2016-10-25 15:27:37 C/C++开发