std::basic_istream<CharT,Traits>::operator>>
提供: cppreference.com
<tbody>
</tbody>
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が有効である場合にのみ投げ直されます)。
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) |
文字シーケンスを整数値または浮動小数点値に変換します (関数) |