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

来自cppreference.com
< cpp‎ | utility‎ | bitset
 
 
工具库
类型支持(基本类型、 RTTI 、类型特性)
动态内存管理
错误处理
程序工具
变参数函数
日期和时间
函数对象
(C++11)
关系运算符
optionalanyvariant (C++17)
pair 与 tuple
(C++11)
(C++17)
swap 、 forward 与 move
(C++14)
(C++11)
(C++11)
初等字符串转换
(C++17)
(C++17)
类型运算
(C++11)
(C++17)
 
 
template <class CharT, class Traits, size_t N>

std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os,

                                              const bitset<N>& x);
(1)
template <class CharT, class Traits, size_t N>

std::basic_istream<CharT, Traits>& operator>>(std::basic_istream<CharT, Traits>& is,

                                              bitset<N>& x);
(2)

从字符流插入或释出 bitset 。

1) 写 bitset x 入字符流 os ,如同首先用 to_string() 将它转换成 basic_string<CharT,Traits> ,再用 operator<< (对字符串是有格式输出函数 (FormattedOutputFunction) )将它写入 os 。为一与零使用的字符,通过以 '1''0' 为参数调用 std::use_facet<std::ctype<CharT>(os.getloc()).widen() 从当前感染的本地环境获得。
2) 表现为有格式输入函数 (FormattedInputFunction) 。构造并检查 sentry 对象,这可能跳过前导空白符,之后从 is 释出至多 N 个字符,并存储字符于 bitset x

释出字符直至

  • 已读取 N 个字符
  • 文件尾发生于 is ,或
  • 下个字符既非 is.widen('0') 亦非 is.widen('1')

若未释出字符,则调用 is.setstate(ios_base::failbit)

目录

[编辑] 参数

os - 要写入的字符流
is - 要读取的字符流
x - 要读取或写入的 bitset

[编辑] 返回值

操作于上的字符流,例如 osis

[编辑] 示例

#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

[编辑] 参阅

进行二进制左移和右移
(公开成员函数) [编辑]