연산자<<,>>(std::bitset)
cppreference.net에서 가져옴
| 헤더 <bitset>
|
||
template< class CharT, class Traits, std::size_t N >
std::basic_ostream<CharT, Traits>&
operator<<( std::basic_ostream<CharT, Traits>& os, const std::bitset<N>& x );
|
에 정의됨 (1) | |
template< class CharT, class Traits, std::size_t N >
std::basic_istream<CharT, Traits>&
operator>>( std::basic_istream<CharT, Traits>& is, std::bitset<N>& x );
|
(2) | |
문자 스트림에 bitset을 삽입하거나 추출합니다.
1) bitset
1과 0에 사용되는 문자는 현재 내재된 로케일에서
x을 먼저 os을 사용하여 std::basic_string<CharT, Traits>to_string()으로 변환한 다음, 문자열에 대한 operatoros (FormattedOutputFunction<< 입니다)을 사용하여 에 출력하는 것처럼 문자 스트림 에 씁니다.1과 0에 사용되는 문자는 현재 내재된 로케일에서
std::use_facet<std::ctype<CharT>>(os.getloc()).widen()을 '1' 및 '0' 인수로 호출하여 얻습니다.2) FormattedInputFunction으로 동작합니다. 선행 공백을 건너뛸 수 있는 센트리 객체를 생성하고 확인한 후,
다음 중 하나가 발생할 때까지 문자를 추출합니다:
N에서 최대 is개의 문자를 추출하여 bitset x에 저장합니다.다음 중 하나가 발생할 때까지 문자를 추출합니다:
N개의 문자가 읽힐 때까지,is에서 파일 끝이 발생할 때까지, 또는- 다음 문자가
is.widen('0')또는is.widen('1')이 아닐 때까지.
N > 0이고 추출된 문자가 없으면 is.setstate(ios_base::failbit)이 호출됩니다.매개변수
| os | - | 데이터를 쓸 문자 스트림 |
| is | - | 데이터를 읽을 문자 스트림 |
| x | - | 읽거나 쓸 bitset |
반환값
1)
os
2)
is
예제
이 코드 실행
#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 | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 303 | C++98 |
단일 바이트 문자를
is 에서 추출했지만,
CharT
는 여러 바이트를 가질 수 있음
|
CharT
를 추출하고 확장된
'0' 및 '1' 와 비교 |
| LWG 396 | C++98 | operator << 가 작성한 내용이 로케일 독립적이었음 | 확장된 '0' 과 '1' 을 기록 |
| LWG 3199 | C++98 |
std::bitset<0>
추출 시 항상
failbit
설정
|
해당 추출 시
failbit
을 설정하지 않음
|
참고 항목
| 이진 왼쪽 시프트 및 오른쪽 시프트를 수행합니다 (공개 멤버 함수) |