gpt4 book ai didi

c++ - 如何从 C++ std::istream 中读取固定数量的字节

转载 作者:行者123 更新时间:2023-11-30 05:26:26 28 4
gpt4 key购买 nike

如何在不进行任何提取的情况下从 std::istream 读取固定数量的字节?例如,我有一个 size_t 类型的变量 sz,我想从 istream< 读取 sizeof(size_t) 字节.

void foo(std::istream& is) {
if(is.rdbuf()->in_avail() < sizeof(size_t)) return;
// how to read to sz from istream is without extraction (advancing pointers)
size_t sz;
}

最佳答案

您只能查看下一个字符而不提取。

因此,您应该改变您的策略:与其试图避免提取,不如提取您需要的字符,然后恢复流的状态。如果流支持搜索,这是可能的:

  • 使用tellg获取当前位置
  • 提取字节
  • 使用seekg跳转到前面的位置

否则,您可能需要实现自己的缓冲区,以通过“读取而不提取”来实现您想要实现的任何目标。

关于c++ - 如何从 C++ std::istream 中读取固定数量的字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37780054/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com