名前空間
変種
操作

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

提供: cppreference.com
< cpp‎ | utility‎ | bitset
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
 
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) まず to_string() を使用して basic_string<CharT,Traits> に変換し、それを operator<< (文字列に対する FormattedOutputFunction) を使用して os に書き込んだかのように、ビットセット x を文字ストリーム os に書き込みます。 1および0のために使用する文字は、引数として '1' および '0' を渡して std::use_facet<std::ctype<CharT>>(os.getloc()).widen() を呼ぶことによって、現在設定されているロケールから取得されます。
2) FormattedInputFunction として動作します。 先頭のホワイトスペースをスキップするかもしれない sentry オブジェクトの構築および確認後、 is から最大 N 文字を抽出し、ビットセット x にその文字を格納します。

文字は以下のいずれかが発生するまで抽出されます。

  • N 文字読み込んだ。
  • is でファイル終端が発生した。
  • 次の文字が is.widen('0') でも is.widen('1') でもない。

N > 0 かつ1文字も抽出されなかった場合は is.setstate(ios_base::failbit) が呼ばれます。

目次

[編集] 引数

os - 書き込む文字ストリーム
is - 読み込む文字ストリーム
x - 読み書きするビットセット

[編集] 戻り値

操作対象の文字ストリーム、すなわち os または 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」を読み込み、 b2 に「00000101」として格納されます。
    std::cout << b2 << '\n';
}

出力:

001
00000101

[編集] 欠陥報告

以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。

DR 適用先 発行時の動作 正しい動作
LWG 3199 C++98 extracting a std::bitset<0> always set failbit such extraction never sets failbit

[編集] 関連項目

バイナリ左シフトおよび右シフトを行います
(パブリックメンバ関数) [edit]