名前空間
変種
操作

std::basic_istringstream::basic_istringstream

提供: cppreference.com
basic_istringstream() : basic_istringstream(ios_base::in) { }
(1) (C++11およびそれ以降)
(2)
explicit basic_istringstream( ios_base::openmode mode = ios_base::in );
(C++11以前)
explicit basic_istringstream( ios_base::openmode mode );
(C++11およびそれ以降)
explicit basic_istringstream( const std::basic_string<CharT,Traits,Allocator>& str,
                              ios_base::openmode mode = ios_base::in );
(3)
basic_istringstream( basic_istringstream&& other );
(4) (C++11およびそれ以降)

新しい文字列ストリームを構築します。

1) デフォルトコンストラクタ。 デフォルトのオープンモードを使用して新しいベースとなる文字列デバイスを構築します。
2) ベースとなる新しい文字列デバイスを構築します。 ベースとなる basic_stringbuf オブジェクトは basic_stringbuf<Char,Traits,Allocator>(mode | ios_base::in) のように構築されます。
3) ベースとなる文字列デバイスの初期内容として str のコピーを使用します。 ベースとなる basic_stringbuf オブジェクトは basic_stringbuf<Char,Traits,Allocator>(str, mode | ios_base::in) のように構築されます。
4) ムーブコンストラクタ。 ムーブセマンティクスを用いて other の状態を持つ文字列デバイスを構築します。

目次

[編集] 引数

str - 文字列ストリームの初期内容として使用する文字列
mode - ストリームのオープンモードを指定します。 これはビットマスク型であり、以下の定数が定義されています。
定数 説明
app 各書き込み前にストリームの終端へシークします
binary バイナリモードで開きます
in 読み込み用に開きます
out 書き込み用に開きます
trunc 開くときにストリームの内容を破棄します
ate 開いた直後にストリームの終端へシークします
other - ソースとして使用する別の文字列ストリーム

[編集] ノート

文字列変換のために使用するときなどに、タイトなループ内で使い捨ての basic_istringstream オブジェクトを構築することは、同じオブジェクトを再利用するために str を呼ぶよりも、非常に高コストになる可能性があります。

[編集] 欠陥報告

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

DR 適用先 発行時の動作 正しい動作
P0935R0 C++11 default constructor was explicit made implicit

[編集]

#include <iostream>
#include <sstream>
int main()
{
    // default constructor (input/output stream)
    std::stringstream buf1;
    buf1 << 7;
    int n = 0;
    buf1 >> n;
    std::cout << "buf1 = " << buf1.str() << " n = " << n << '\n';
 
    // input stream
    std::istringstream inbuf("-10");
    inbuf >> n;
    std::cout << "n = " << n << '\n';
 
    // output stream in append mode (C++11)
    std::ostringstream buf2("test", std::ios_base::ate);
    buf2 << '1';
    std::cout << buf2.str() << '\n';
}

出力:

buf1 = 7 n = 7
n = -10
test1

[編集] 関連項目

ベースとなる文字列デバイスオブジェクトを取得または設定します
(パブリックメンバ関数) [edit]
basic_stringbuf オブジェクトを構築します
(std::basic_stringbufのパブリックメンバ関数) [edit]