std::basic_istringstream::basic_istringstream

来自cppreference.com
explicit basic_istringstream( ios_base::openmode mode = ios_base::in );
(1)
explicit basic_istringstream( const std::basic_string<CharT,Traits,Allocator>& str,
                     ios_base::openmode mode = ios_base::in );
(2)
basic_istringstream( basic_istringstream&& other );
(3) (C++11 起)

构造新的字符串流。

1) 构造新的底层字符串设备。以 basic_stringbuf<Char,Traits,Allocator>(mode | ios_base::in) 构造底层 basic_stringbuf 对象。

2) 以 str 的副本为底层字符串设备的初始内容。以 basic_stringbuf<Char,Traits,Allocator>(str, mode | ios_base::in) 构造底层 basic_stringbuf 对象。

3) 移动构造函数。用移动语义,构造拥有 other 的状态的字符串流。

[编辑] 参数

str - 用于初始化字符串流内容的字符串
mode - 指定流打开模式。它是位掩码类型,定义下列常量:
常量 解释
app 每次写入前寻位到流结尾
binary 二进制模式打开
in 为读打开
out 为写打开
trunc 在打开时舍弃流的内容
ate 打开后立即寻位到流结尾
other - 用作源的另一字符串流

[编辑] 示例

#include <iostream>
#include <sstream>
int main()
{
    // 默认构造函数(输入/输出流)
    std::stringstream buf1;
    buf1 << 7;
    int n = 0;
    buf1 >> n;
    std::cout << "buf1 = " << buf1.str() << " n = " << n << '\n';
 
    // 输入流
    std::istringstream inbuf("-10");
    inbuf >> n;
    std::cout << "n = " << n << '\n';
 
    // 输出流在 append 模式 (C++11)
    std::ostringstream buf2("test", std::ios_base::ate);
    buf2 << '1';
    std::cout << buf2.str() << '\n';
}

输出:

buf1 = 7 n = 7
n = -10
test1

[编辑] 参阅

获取或设置底层字符串设备对象的内容
(公开成员函数) [编辑]
构造一个 basic_stringbuf 对象
(std::basic_stringbuf 的公开成员函数) [编辑]