首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从range-v3的istream_range中检索文件大小?

如何从range-v3的istream_range中检索文件大小?
EN

Stack Overflow用户
提问于 2018-04-29 22:14:10
回答 1查看 206关注 0票数 0

我尝试从range-v3中获取文件大小值,如下所示。

代码语言:javascript
复制
std::ifstream i("test.bin", std::ios::binary | std::ios::in);
auto rng = ranges::istream_range<unsigned char>(i);
std::cout << ranges::distance(rng);

但是,距离函数似乎返回了错误的大小。为什么?

godbolt.org/g/DsouJE

EN

回答 1

Stack Overflow用户

发布于 2018-05-13 21:34:28

istream_range使用operator>>读取元素。operator>>是一个格式化的输入操作符,它跳过空格,可以转换行尾等等,这就是为什么你会得到错误的结果。

即使这种方法可以给出正确的结果,它的效率也非常低。它读取整个文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50087511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档