问题标签 [boost-iostreams]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
308 浏览

boost-iostreams - 使用 boost::iostreams 即时写入压缩数据

我的天真解决方案如下:创建一个压缩文件缓冲区并将此缓冲区添加到 ostream。但在示例代码中,'output.z' 的大小始终为 0 字节。

这个例子中的概念错误在哪里?

问候,格特

0 投票
1 回答
1113 浏览

c++ - 如何使用 boost 从内存映射文件中访问大块内存?

我正在尝试读取 x,y,z 中的大文件。通常它会遇到 gbs 的数据。我已经使用 Boost 创建了内存映射文件。但是,我仍然不太清楚如何从这个文件中访问一块内存。

Boost 提供函数 char* data() 返回指向缓冲区第一个字节的指针。(我将整个数据作为缓冲区)。
有没有办法可以逐块读取数据。理想情况下,我想以 10,000 个为单位读取数据。

以下是代码。

0 投票
4 回答
3471 浏览

c++ - 高效解析mmap文件

以下是使用 boost 创建内存映射文件的代码。

ParseData的实现如下

我说我的数据结构中至少有 100 万个点,我想优化我的解析。有任何想法吗 ?

0 投票
1 回答
96 浏览

c++ - 将 boost::stream 用于更复杂/结构化的类型然后是字符?

是否可以将 boost::iostreams 用于更复杂/结构化的类型?

我想做的是流式传输图像,但它们应该有一些注释,如宽度、高度、颜色深度……我的第一个想法是使用结构而不是 char 或 wchar

我现在的问题是如何连接源和接收器?

谢谢

0 投票
0 回答
737 浏览

c++ - 将 Eof 写入流

我想提升进程来启动一个进程并写入/读取它的标准输入/标准输出。原则上,代码可以工作,但不会终止。在我看来,外部程序没有收到 EOF,尽管我关闭了流以写入进程的标准输入。任何想法如何使进程发送 EOF?如果我删除要写入 /bin/cat 标准输入的代码,则该代码有效。然后我可以输入文本并在 Ctrl-D 上终止。任何想法如何通过流发送 EOF?

我的代码:

0 投票
2 回答
1957 浏览

c++ - 用于将 boost filtering_stream 替换为 std::ofstream 的参数语法

关于 boost filtering_streams 的一些基本问题。我有几十个函数采用 std::ofstream& 参数

现在我想使用 boost filtering_stream 输出到一个压缩的 ZIP 文件。用于打包和解包的常用 boost filtering_streams 测试代码已编译、链接并完美地为我工作。我想替换过滤流:

三个问题:

1) 我以前接受 std::ofstream& outStream 的所有函数现在是否需要接受 boost::iostreams::filtering_streambuf& 类型的参数?或者是否有适当的参数类型,以便那些众多(“foo”)函数可以与任何一种类型的流类型一起使用?

2) 在我的简单测试用例中,我无法将流运算符语法与过滤流缓冲区一起使用:

这产生了错误:'operator<<'不匹配。我同样用 write() 编译错误:

error: 'class boost::iostreams::filtering_streambuf<boost::iostreams::output, char, std::char_traits<char>, std::allocator<char>, boost::iostreams::public_>' has no member named 'write'

3)在常见的测试用例示例代码(如下)中,我很困惑在创建文件“hello.z”后找不到它。解包代码(也在下面)清楚地引用了它——那么在哪里可以找到它呢?注意:这个位置终于被发现了:它在 /Library/Preferences/

顺便说一句:XCode 3.2.6、GNU 4.0、OS X 10.6.8

0 投票
1 回答
64 浏览

c++ - boost iostreaming 过滤器获取空值

我尝试使用 boost::iostreams 构建一个用于读取和写入 char* 的流缓冲区:

阅读效果很好:

但写作不起作用:

什么不见​​了?

谢谢

0 投票
1 回答
7179 浏览

c++ - boost iostreams 库存在,但我无法链接它

我知道有很多类似的问题,但我的问题有点不同,没有他们帮助我。

我正在使用 boost-iostreams 库,这是我的问题,我试图将我的程序与库链接:

结果是:

当我试图明确地写它时:

它告诉我图书馆不存在:

但它确实:

关于我:

  • 操作系统:Debian 7 Wheezy
  • 编。语言:C++
  • 编译器:g++ (Debian 4.7.2-5) 4.7.2
  • 链接器:GNU ld(Debian 的 GNU Binutils)2.22
  • boost库版本:1.49(来自debian repo)

谢谢!

编辑:

正确的选择应该是-lboost_iostreams,而不是-lboost-iostreams

编辑2:

编辑后我的命令是:

其中 libpath 是以下之一:

但结果仍然是:

0 投票
1 回答
1621 浏览

c++ - Boost 库 iostream::copy 不工作

我已经按照这个问题安装了 Boost: 如何在 Visual Studio 2010 中使用 Boost

我在boost::iostreams::copy(in, cout)声明中遇到错误。

我对 Boost 很陌生,所以我不知道这段代码是对还是错。

我想我做了我应该做的每一件事,我迷失了。


编辑

我已经检查了这个问题:boost::iostreams::copy() 的例外

而且我已经更改了我的测试代码以知道我得到了什么错误。

它说我明白了boost::iostreams::bzip2::config_error

这是否意味着我安装了 bzip2 过滤器错误???

因为我得到了一些我使用的错误

我得到:

0 投票
1 回答
1064 浏览

c++ - C++11 boost::iostreams::filtering_stream 删除

我有一些数据要格式化和输出,可以是原始文本文件,也可以是 .gz 压缩文本文件。

因此,我想做这样的事情:

使用 getCompressedStream 解密流并返回新的非加密流的函数:

所以我希望 getCompressedStream 抽象调用 boost lib,这样我就只在我的主程序中使用 std 流。

它不起作用:.gz 文件已损坏/不可读。

根据这个线程,过滤流的输出是在对象的销毁中完成的。因此,我不知道它是否可以用 shared_ptr 干净地完成。我不知道文件或流是否首先被破坏,我想这会导致问题。

您认为以这种方式实现 getCompressedStream 可行吗?你会改变什么?

谢谢

编辑:如果我切换到常规指针而不是共享指针,它会起作用,并在文件之前明确删除流。