Namespaces
Variants

operator<<,>> (std::bitset)

From cppreference.net
Utilities library
헤더 파일에 정의됨 <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)

비트셋을 문자 스트림에 삽입하거나 추출합니다.

1) bitset x 를 문자 스트림 os 에 기록합니다. 마치 먼저 to_string() 을 사용하여 std:: basic_string < CharT, Traits > 로 변환한 다음, operator<< (문자열에 대한 FormattedOutputFunction 임)를 사용하여 os 에 기록하는 것처럼 동작합니다.
1과 0을 나타내는 데 사용할 문자들은 현재 로케일에서 std:: use_facet < std:: ctype < CharT >> ( os. getloc ( ) ) . widen ( ) 를 호출하여 '1' '0' 을 인자로 전달해 얻습니다.
2) FormattedInputFunction 으로 동작합니다. 선행 공백을 건너뛸 수 있는 sentry 객체를 생성하고 검사한 후, is 로부터 최대 N 개의 문자를 추출하여 비트셋 x 에 저장합니다.
다음 조건 중 하나가 충족될 때까지 문자를 추출합니다:
  • N 개의 문자가 읽혔을 때,
  • is 에서 파일 끝(EOF)이 발생했을 때, 또는
  • 다음 문자가 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 을 설정하지 않음

참고 항목

이진 왼쪽 시프트 및 오른쪽 시프트 수행
(public member function)