名前空間
変種
操作

std::basic_istream::operator>>

提供: cppreference.com
< cpp‎ | io‎ | basic istream
 
 
 
 
basic_istream& operator>>( short& value );
basic_istream& operator>>( unsigned short& value );
(1)
basic_istream& operator>>( int& value );
basic_istream& operator>>( unsigned int& value );
(2)
basic_istream& operator>>( long& value );
basic_istream& operator>>( unsigned long& value );
(3)
basic_istream& operator>>( long long& value );
basic_istream& operator>>( unsigned long long& value );
(4) (C++11およびそれ以降)
basic_istream& operator>>( float& value );

basic_istream& operator>>( double& value );

basic_istream& operator>>( long double& value );
(5)
basic_istream& operator>>( bool& value );
(6)
basic_istream& operator>>( void*& value );
(7)
basic_istream& operator>>( std::ios_base& (*func)(std::ios_base&) );
(8)
basic_istream& operator>>( std::basic_ios<CharT,Traits>& (*func)(std::basic_ios<CharT,Traits>&) );
(9)
basic_istream& operator>>( basic_istream& (*func)(basic_istream&) );
(10)
basic_istream& operator>>( std::basic_streambuf<CharT,Traits>* sb );
(11)
1-4) FormattedInputFunction として動作します。 sentry オブジェクトの構築 (先行するホワイトスペースをスキップするかもしれません) および確認の後、 std::num_get::get() を呼ぶことによって整数値を抽出します。
5) FormattedInputFunction として動作します。 sentry オブジェクトの構築 (先行するホワイトスペースをスキップするかもしれません) および確認の後、 std::num_get::get() を呼ぶことによって浮動小数点値を抽出します。
6) FormattedInputFunction として動作します。 sentry オブジェクトの構築 (先行するホワイトスペースをスキップするかもしれません) および確認の後、 std::num_get::get() を呼ぶことによって bool 値を抽出します。
7) FormattedInputFunction として動作します。 sentry オブジェクトの構築 (先行するホワイトスペースをスキップするかもしれません) および確認の後、 std::num_get::get() を呼ぶことによって汎用ポインタ値を抽出します。
8-10) func(*this) を呼びます。 ただし func は入出力マニピュレータです。
11) UnformattedInputFunction として動作します。 sentry オブジェクトの構築 (先行するホワイトスペースをスキップするかもしれません) および確認の後、入力ストリームからすべてのデータを抽出し、それを sb に格納します。 以下のいずれかの条件が満たされると抽出を停止します。
  • 入力シーケンスでファイル終端が発生した。
  • 出力シーケンスで挿入が失敗した (この場合、挿入される予定だった文字は抽出されません)。
  • 例外が発生した (この場合、その例外はキャッチされ、 exceptions()failbit が有効である場合にのみ投げ直されます)。
いずれの場合でも、抽出された文字数が後続する gcount() の呼び出しによってアクセスされるメンバ変数に格納されます。 sb がヌルポインタの場合または sb に1文字も挿入されなかった場合は setstate(failbit) を呼びます (それによって、有効であれば、 std::ios_base::failure が投げられることがあります)。

抽出が失敗した場合 (数字が期待されるところで文字が現れた場合など)、 value は変更されず、 failbit がセットされます。

(C++11以前)

抽出が失敗した場合、 value にはゼロが書き込まれ、 failbit がセットされます。 抽出結果が value に収めるには大きすぎるまたは小さすぎる値であった場合は、 std::numeric_limits<T>::max() または std::numeric_limits<T>::min() が書き込まれ、 failbit フラグがセットされます。

(C++11およびそれ以降)

目次

[編集] 引数

value - 抽出された値を格納する整数または浮動小数点値への参照
func - 入出力マニピュレータ関数へのポインタ
sb - すべてのデータを書き込むストリームバッファへのポインタ

[編集] 戻り値

1-9,11) *this
10) func(*this)

[編集]

#include <iostream>
#include <iomanip>
#include <sstream>
 
int main()
{
    std::string input = "41 3.14 false hello world";
    std::istringstream stream(input);
    int n;
    double f;
    bool b;
 
    stream >> n >> f >> std::boolalpha >> b;
    std::cout << "n = " << n << '\n'
              << "f = " << f << '\n'
              << "b = " << std::boolalpha << b << '\n';
 
    // extract the rest using the streambuf overload
    stream >> std::cout.rdbuf();
    std::cout << '\n';
}

出力:

n = 41
f = 3.14
b = false
hello world

[編集] 関連項目

文字と文字配列を抽出します
(関数テンプレート) [edit]
文字列のストリーム入出力を行います
(関数テンプレート) [edit]
ビットセットのストリーム入出力を行います
(関数テンプレート) [edit]
複素数をシリアライズおよびデシリアライズします
(関数テンプレート) [edit]
擬似乱数エンジンに対してストリーム入出力を行います
(関数テンプレート) [edit]
乱数分布に対してストリーム入出力を行います
(関数テンプレート) [edit]
文字のブロックを抽出します
(パブリックメンバ関数) [edit]
すでに利用可能な文字のブロックを抽出します
(パブリックメンバ関数) [edit]
文字を抽出します
(パブリックメンバ関数) [edit]
指定された文字が見つかるまで文字を抽出します
(パブリックメンバ関数) [edit]
文字シーケンスを整数値または浮動小数点値に変換します
(関数) [edit]