std::basic_istream<CharT,Traits>::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 ); |
(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
が有効である場合にのみ投げ直されます)。
sb
がヌルポインタの場合または sb
に1文字も挿入されなかった場合は setstate(failbit) を呼びます (それによって、有効であれば、 std::ios_base::failure が投げられることがあります)。
抽出が失敗した場合 (数字が期待されるところで文字が現れた場合など)、 |
(C++11未満) |
抽出が失敗した場合、 |
(C++11以上) |
目次 |
[編集] 引数
value | - | 抽出された値を格納する整数または浮動小数点値への参照 |
func | - | 入出力マニピュレータ関数へのポインタ |
sb | - | すべてのデータを書き込むストリームバッファへのポインタ |
[編集] 戻り値
1-9,11) *this。
10) func(*this)。
[編集] 例
Run this code
#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
[編集] 関連項目
文字と文字配列を抽出します (関数テンプレート) | |
文字列のストリーム入出力を行います (関数テンプレート) | |
ビットセットのストリーム入出力を行います (関数テンプレート) | |
複素数をシリアライズおよびデシリアライズします (関数テンプレート) | |
擬似乱数エンジンに対してストリーム入出力を行います (関数テンプレート) | |
乱数分布に対してストリーム入出力を行います (関数テンプレート) | |
文字のブロックを抽出します (パブリックメンバ関数) | |
すでに利用可能な文字のブロックを抽出します (パブリックメンバ関数) | |
文字を抽出します (パブリックメンバ関数) | |
指定された文字が見つかるまで文字を抽出します (パブリックメンバ関数) | |
(C++17) |
文字シーケンスを整数値または浮動小数点値に変換します (関数) |