0

我有一个来自二进制文件的输入流。我想为流的前 5 位创建一个位集。这是我到目前为止的代码:

ifstream is;    
is.open ("bin_file.out", ios::binary );

bitset<5> first_five_bits;

is >> first_five_bits; // always is set to default 00000
4

2 回答 2

2
char c;
if( ! cin.get(c) ) throw ROFL();  // return error, flip bit, call mom
bitset<5> first_five_bits(c >> (CHAR_BIT-5));  // CHAR_BIT in <climits>
于 2010-06-03T14:52:52.377 回答
1

流不适用于位,因此您应该读取一个字节并将其设置为位集。

未编译,未测试:

char c;
is >> c;
bitset<5> first_five_bits(c >> 3);
于 2010-06-03T14:56:35.090 回答