将二进制文件读入位集或向量<bool>
Reading a Binary File into a bitset or vector<bool>
如何将二进制文件读取到bitset
或vector<bool>
?二进制文件的长度会有所不同。有更好的容器吗?虽然我是一个有经验的程序员,但我对c++还是个新手。
如果文件很大,为什么要一次读取,将整个文件放入内存?
你可以每次读一小段。大小由size在这个函数中决定:
file.read(buff, size)
当buff是char的数组时
我很抱歉,但你不能最简单的读取/保存矢量文件。详情请参阅此处和此处
使用谷歌,它很有帮助…
你在问题中没有给出太多你想做的事情的背景。但这里有一个快速的& &;龌龊的做法:
#include <iterator>
#include <fstream>
#include <vector>
#include <assert.h>
using namespace std;
const char *filename = "foo.bar";
int main()
{
vector<bool> v;
ifstream binary_file(filename, ios::binary);
assert(binary_file);
copy(istream_iterator<unsigned char>(binary_file),
istream_iterator<unsigned char>(),
back_insert_iterator< vector<bool> >(v));
}
将零字节' '字符读入向量将为假。其他被读入的字节将被视为真值。
相关文章:
- 写入向量<向量<bool>>
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 让bool方法返回其他整数
- 如何在 std::vector 中找到<bool>哪些索引是真的?
- Arduino-C++ bool 不会从 false 变为 true
- 为什么在这种情况下,bool 类型的输出等于 0?
- 显式 std::exception_ptr 转换为 bool 不存在.VS2010 错误?
- 错误:不能使用"显式"说明符声明 bool'
- 为什么 C++ 11 在 ios 类中添加了运算符 bool
- 从标准::字符串到标准::矢量<bool>的快速转换
- 为什么 bool 和 _Bool 如果它们在内存中占用 1 个字节,它们只能存储 0 或 1
- 通过 mpi 发送 c++ 标准::矢量<bool>
- 为什么使用Pool和Bool而不是int8_t或char
- 如何为地图< map<int,int> 、bool > 分配值?
- 为什么更改包含 psapi.h 的顺序会产生编译错误?(标识符 BOOL 未定义)
- 使用 bool 和 const char 重载的 C++ 函数会在没有警告的情况下产生歧义 (MSVC2012)
- 返回 bool 作为 CPP 中 bool 运算符 [] 中的值