operator<<,>> (std::bitset)
|
Определено в заголовке
<bitset>
|
||
|
template
<
class
CharT,
class
Traits,
std::
size_t
N
>
std::
basic_ostream
<
CharT, Traits
>
&
|
(1) | |
|
template
<
class
CharT,
class
Traits,
std::
size_t
N
>
std::
basic_istream
<
CharT, Traits
>
&
|
(2) | |
Вставляет или извлекает битовый набор из символьного потока.
Символы для единиц и нулей получаются из текущей локали вызовом std:: use_facet < std:: ctype < CharT >> ( os. getloc ( ) ) . widen ( ) с аргументами '1' и '0' .
Символы извлекаются до тех пор, пока либо
- N символов не будет прочитано,
- не наступит конец файла в is , либо
- следующий символ не окажется ни is. widen ( '0' ) , ни is. widen ( '1' ) .
Содержание |
Параметры
| os | - | символьный поток для записи |
| is | - | символьный поток для чтения |
| x | - | битовый набор для чтения или записи |
Возвращаемое значение
Пример
#include <bitset> #include <iostream> #include <sstream> int main() { std::string bit_string = "001101"; std::istringstream bit_stream(bit_string); std::bitset<3> b1; bit_stream >> b1; // читает "001", в потоке остается "101" std::cout << b1 << '\n'; std::bitset<8> b2; bit_stream >> b2; // читает "101", заполняет 8-битный набор как "00000101" std::cout << b2 << '\n'; }
Вывод:
001 00000101
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 303 | C++98 |
single-byte characters were extracted from
is , but
CharT
can have multiple bytes
|
extracts
CharT
and compares
it with widened '0' and '1' |
| LWG 396 | C++98 | the content written by operator << was locale-independent | writes widened '0' s and '1' s |
| LWG 3199 | C++98 |
extracting a
std::bitset<0>
always sets
failbit
|
such extraction never sets
failbit
|
Смотрите также
|
выполняет двоичный сдвиг влево и сдвиг вправо
(public member function) |