如何从范围 v3 的istream_range中检索文件大小?
How to retrieve file size from range-v3's istream_range?
我正在尝试从范围V3获取文件大小值。
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
istream_range
使用 operator>>
读取元素。operator>>
是一个格式化的输入操作员,它跳过空格,可能会转换线结尾等。这就是为什么您遇到错误结果的原因。
,即使是这种方法也可以给出正确的结果,这是非常效率的。它读取整个文件。
相关文章:
- 使用VerQueryValue检索应用程序的文件描述
- 是否可以从格式字符串中检索"width"
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 如何在QByteArray中放置和检索位字段而不会感到痛苦?
- 如何在Qt中从数据库中检索二进制数据?
- 如何从C++代码中检索 QML 的文本字段中的文本?
- 从 opencv c++ 中的矢量中检索固定的帧数
- 如何在不等待检索的情况下获取C++中的内存位置?
- 如何在 QTreeWidget 中检索特定项目的 mimeData?
- C++从字符串中检索几行
- 在数据库中插入和检索矩阵
- 两个垫子的 OpenCV 数据是相同的,但使用 Mat::at 检索时的值已损坏
- 使用 const char* 键映射 C++ 检索空值
- 打印从SQLite3数据库检索的数据C++与命令行中相同的方式
- 如何检索指向在单独线程上运行的函数的移动指针?
- 如何检索 Steamwork SDK 的当前版本
- 通过 host() 从 af::array 检索数据会导致错误的数据
- 为什么我的向量::擦除调用会抛出"vector subscript out of range"?
- 无法从类中检索值
- 初始化类中的指针数组,并在另一个类中检索它