与我的自定义 Streambuf 类一起使用时,istream::tellg() 返回 -1?

2024-02-13

我正在尝试创建一个istream直接从原始内存缓冲区读取。

我在这里的另一篇文章中找到了一个很好的方法:

  class membuf : public basic_streambuf<char>
  {
  public:
      membuf(char* p, size_t n) {
          setg(p, p, p + n);
      }
  };

然后我创建我的istream使用这个membuf:

    membuf mb(dataPointer, dataLength);
    istream reader(&mb);

然后我阅读使用getline() and >>运营商,一切都很美好。但是,我似乎无法使用seekg()倒回到缓冲区的开头,并且istream::tellg()总是返回-1.

我是否需要编写更多代码才能使它们正常工作,或者这注定会失败?


函数tellg 和seekg 依赖于受保护的虚拟函数seekoff and seekpos,你必须在你的membuf class.

默认值在basic_streambuf刚刚返回pos_type(off_type(-1))对于所有调用(对于许多实现来说可能等于 -1)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与我的自定义 Streambuf 类一起使用时,istream::tellg() 返回 -1? 的相关文章

  • 如何使用 zlib 制作 .zip 文件

    我正在阅读zlib的文档 它相当详细 但我读到了这一行 输出数据将位于zlib格式 与 gzip 或zip formats http www zlib net zlib how html http www zlib net zlib how
  • 分段错误(核心转储)错误

    我的程序编译罚款 但在输入文件时出现 分段错误 核心转储 错误 我没有正确处理 ostream 吗 include
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • mprotect 之后 malloc 导致分段错误

    在使用 mprotect 保护内存区域后第一次调用 malloc 时 我遇到分段错误 这是执行内存分配和保护的代码片段 define PAGESIZE 4096 void paalloc int size Allocates and ali
  • SFINAE 如何使用省略号?

    过去 当使用 SFINAE 选择构造函数重载时 我通常使用以下内容 template
  • 如何生成 appsettings..json 文件?

    我有一个 ASP NET Core 2 WebAPI 它将部署在以下环境中 INT QA STAGE 生产环境 基于上述 我需要有appsettings
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • 如何在 C++ 中将 CString 转换为 double?

    我如何转换CString to a double在 C 中 Unicode 支持也很好 Thanks A CString可以转换为LPCTSTR 这基本上是一个const char const wchar t 在 Unicode 版本中 知
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • tabcontrol selectedindex 更改事件未被触发 C#

    嘿伙计们 我有一个很小的问题 请参阅下面的代码 this is main load private void Form1 Load object sender EventArgs e tabAddRemoveOperator Selecte
  • asp.net网格分页的SQL查询

    我在用iBatis and SQLServer 使用偏移量和限制进行分页查询的最佳方法是什么 也许我添加该列ROW NUMBER OVER ORDER BY Id AS RowNum 但这只会阻止简单查询的数据访问 在某些情况下 我使用选择
  • ASP.NET JQuery AJAX POST 返回数据,但在 401 响应内

    我的应用程序中有一个网页 需要调用我设置的 Web 服务来返回对象列表 这个调用是这样设置的 document ready function var response ajax type POST contentType applicati
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 使用 iTextSharp 5.3.3 和 USB 令牌签署 PDF

    我是 iTextSharp 和 StackOverFlow 的新手 我正在尝试使用外部 USB 令牌在 C 中签署 PDF 我尝试使用从互联网上挖掘的以下代码 Org BouncyCastle X509 X509CertificatePar
  • 如何引用解决方案之外的项目?

    我有一个 Visual Studio C 解决方案 其中包含一些项目 其中一个项目需要引用另一个不属于解决方案的项目 一开始我引用了dll
  • 受限 AppDomain 中的代码访问安全异常

    Goal 我需要在权限非常有限的 AppDomain 中运行一些代码 它不应该访问任何花哨或不安全的内容 except对于我在其他地方定义的一些辅助方法 我做了什么 我正在创建一个具有所需基本权限的沙箱 AppDomain 并创建一个运行代
  • 带有私有设置器的 EFCore Base 实体模型属性 - 迁移奇怪的行为

    实体模型继承的类内的私有设置器似乎会导致 EFCore 迁移出现奇怪的问题 考虑以下示例 其中有多个类 Bar and Baz 继承自Foo 跑步时Add Migration多次命令 添加 删除private修饰符 生成的模式在多个方面都是

随机推荐

  • 如何使Qt主窗体在屏幕上居中?

    我已经在主窗体的构造函数中尝试过这些 QRect desktopRect QApplication desktop gt availableGeometry this move desktopRect center frameGeometr
  • 登录表单上的 ssl?

    我的网站上有 SSL 当用户从 http 页面登录时 表单操作会发送到 https 页面 这仍然会保护发布的数据吗 或者将表单和页面发布到 SSL 会更好吗 Thanks It is对于带有表单的页面和正在提交的页面都是绝对必要的to为 H
  • ActiveAdmin:批量选择所有页面

    使用 activeadmin 是否可以对特定模型的所有记录执行批处理操作 而不是仅在当前页面上选择的记录 默认批处理操作仅对当前页面中的选择进行操作 您必须定义自己的批处理操作 该操作仅忽略选择并对所有记录执行操作 See http act
  • 为什么在检查依赖关系时使用 GemSpec + GemFile?

    每当开发 gems 时 我看不出有任何理由不直接检查 Gemfile 的依赖关系 确实 为什么要使用 gemspec文件以便列出它们 有真正的好处吗 嗯 那是因为Gemfile不是来自 Rubygems 的文件 而是来自 Bundler 的
  • 制作一个独立的列表(?)

    我正在尝试列表并尝试显示以下代码段 hello 但要做到这一点 我需要让 3 个 listSmall 彼此独立 有没有办法做到这一点 当前输出当然是 hello hello hello listSmall listBig listSmall
  • 在保存付款方式之前如何获取报价总额?

    我正在尝试创建一步结帐 但在结帐页面中我遇到了订单审核部分的问题 当我选择付款方式时 例如 货到付款 有 5 美元的额外费用 或者 checkorder 有 4 的折扣 或者 信用卡付款 会在订单总额中增加额外费用 我需要一种在保存付款方式
  • 将 AnyGenerator 与 Swift 2.2+ 一起使用(自定义类的“for in”循环支持)

    以前我使用以下函数使我的自定义类符合 SequenceType 协议 func generate gt AnyGenerator
  • 我想从 MySQL 数据库中随机选择一个 YouTube 视频,并将其显示在我的网页上 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个名为 Videos 的 My
  • Bootstrap 4 导航栏将徽标中心对齐并在左侧切换图标

    我想让徽标居中 链接位于导航栏的左侧 当它们在小型设备中折叠时 切换按钮应出现在左侧 此处出现在右侧 并且徽标应固定 不折叠
  • JNI 对象指针

    Problem 在尝试 JNI 接口时 我想知道是否可以采取JObject并将其转换为等效的结构来操作字段 然而 当我尝试时 我惊讶地发现这不起作用 忽略这个想法可能有多么可怕 为什么它不起作用呢 我的方法 Java测试类 我做了一个简单的
  • 向 ggplot2 添加小刻度和标签

    必须有一种更简单的方法来使用 ggplot2 在图中添加自定义刻度和标签 而不是像论坛中的一些答案那样创建自定义函数 这是我的代码 data lt data frame WS Spd WVT c 0 5 1 2 4 2 0 3 C E c
  • python如何比较字符串和整数[重复]

    这个问题在这里已经有答案了 在下面的代码中 这是一个用于对元素进行排序的简单算法 我的问题是如何在内部比较字符串以及解释器如何知道这些字符串将放置在整数之后 a 22 66 54 11 16 2 5 b a 3 2 1 gt gt gt f
  • 如何在kafka中初始化kafka ConsumerRecords进行测试

    我正在为 kafka 消费者组件和模拟编写测试用例kafkaConsumer poll 它返回的实例ConsumerRecords
  • 设置 md-grid-list 样式

    我正在使用 Angular Material 网格列表来显示大约 500 1000 个项目 我在根据自己的喜好设计它时遇到了一些麻烦 这是网格列表现在的样子
  • Cassandra中删除表或截断表哪个更好

    我们有一个用例 我们需要每天使用 Cassandra 中的当前数据重新创建一个表 为此 我们应该使用 drop table 还是 truncate table 哪个会更有效率 我们不希望数据被备份等 谢谢 安库尔 我认为对于几乎所有情况 截
  • Windows 8 Phone 客户端证书 HTTPS 身份验证

    我正在尝试使用我正在开发的 Windows 8 Phone 应用程序中的客户端证书访问安全的 HTTPS 服务器 这根本不起作用 这让我尝试从标准 Web 浏览器访问 HTTPS 服务器 但它也不起作用 我不知道 Internet Expl
  • 从 SonarQube 删除项目

    有谁知道如何从 SonarQube 服务器删除项目 谢谢 罗南 您有 2 种方法可以删除项目 如果您是项目的管理员 则可以从其配置操作中将其删除 gt 参见 项目管理 文档页面中的 删除项目 https docs sonarqube org
  • 如何从 SQL Server 中的 TOP 中排除 LEFT JOINed 表?

    假设我有两个书籍表和两个对应版本的表 我有一个查询如下 SELECT TOP 10 FROM SELECT hbID hbTitle hbPublisherID hbPublishDate hbedID hbedDate FROM hard
  • Typescript 和 React 组件接受 TextArea 和 Input 的 onChange

    我是打字稿新手 我正在尝试创建一个输入组件 如果它收到type text 它呈现一个input如果它收到type textarea 它呈现 你明白了 一个textarea 问题是 当我在代码中使用该组件时 打字稿会抱怨onChange 似乎
  • 与我的自定义 Streambuf 类一起使用时,istream::tellg() 返回 -1?

    我正在尝试创建一个istream直接从原始内存缓冲区读取 我在这里的另一篇文章中找到了一个很好的方法 class membuf public basic streambuf