「cpp/named req/UnformattedInputFunction」の版間の差分
提供: cppreference.com
細 (Use {{lc}}. Update links. Various fixes.) |
|||
(1人の利用者による、間の1版が非表示) | |||
1行: | 1行: | ||
− | + | {{cpp//title|UnformattedInputFunction}} | |
− | {{cpp/ | + | {{cpp//navbar}} |
− | {{cpp/ | + | |
===要件=== | ===要件=== | ||
− | |||
− | + | {{/|}} | |
− | :* | + | |
− | :* | + | {{l2tt|cpp/io/basic_istream/sentry}} {{tt|noskipws}} {{c|true}} |
− | * | + | :* {{ltt|cpp/io/ios_base/iostate|eofbit}} または {{ltt|cpp/io/ios_base/iostate|badbit}} {{tt|failbit}} failbit {{l2tt|cpp/io/ios_base/failure}} |
− | * | + | :* tie() |
− | :* | + | * {{tt|sentry::operator bool()}} sentry {{l2tt|cpp/io/basic_ios/good}} |
− | :* | + | * sentry {{c|false}} sentry |
− | * {{ | + | :* (gcount) |
− | + | :* {{tt|CharT}} {{tt|CharT()}} | |
− | :* | + | {{|}} {{|()}} ()}} |
− | * | + | * {{|{{c|}} {{c|}} {{|{{|}} |
+ | {{tt|badbit}} badbit | ||
+ | :* (gcount) | ||
+ | * sentry | ||
===標準ライブラリ=== | ===標準ライブラリ=== | ||
− | |||
− | + | {{|}} | |
+ | |||
+ | {{lc|std::getline}} gcount | ||
* {{l2tt|cpp/io/basic_istream/operator_gtgt|operator>>{{dsc small|(basic_streambuf*)}}}} | * {{l2tt|cpp/io/basic_istream/operator_gtgt|operator>>{{dsc small|(basic_streambuf*)}}}} | ||
* {{l2tt|cpp/io/basic_istream/get}} | * {{l2tt|cpp/io/basic_istream/get}} | ||
29行: | 31行: | ||
* {{l2tt|cpp/io/basic_istream/read}} | * {{l2tt|cpp/io/basic_istream/read}} | ||
* {{l2tt|cpp/io/basic_istream/readsome}} | * {{l2tt|cpp/io/basic_istream/readsome}} | ||
− | * | + | * {{l2tt|cpp/io/basic_istream/putback}} {{tt|eofbit}} |
− | * | + | * {{l2tt|cpp/io/basic_istream/unget}} {{tt|eofbit}} |
− | * | + | * {{l2tt|cpp/io/basic_istream/sync}} gcount |
− | * | + | * {{l2tt|cpp/io/basic_istream/tellg}} gcount |
− | * | + | * {{l2tt|cpp/io/basic_istream/seekg}} {{tt|eofbit}} gcount |
− | * | + | * {{lc|std::ws}} gcount |
− | [[de:cpp/ | + | [[de:cpp//UnformattedInputFunction]] |
− | [[en:cpp/ | + | [[en:cpp//UnformattedInputFunction]] |
− | [[es:cpp/ | + | [[es:cpp//UnformattedInputFunction]] |
− | [[fr:cpp/ | + | [[fr:cpp//UnformattedInputFunction]] |
− | [[it:cpp/ | + | [[it:cpp//UnformattedInputFunction]] |
− | [[pt:cpp/ | + | [[pt:cpp//UnformattedInputFunction]] |
− | [[ru:cpp/ | + | [[ru:cpp//UnformattedInputFunction]] |
− | [[zh:cpp/ | + | [[zh:cpp//UnformattedInputFunction]] |
2018年6月20日 (水) 06:43時点における最新版
[編集] 要件
UnformattedInputFunction は以下の動作を行うストリーム入力関数です。
- 自動記憶域期間を持つ basic_istream::sentry 型のオブジェクトを
noskipws
引数を true に設定して構築します。 これは以下の動作を行います。
- 入力ストリームに eofbit または badbit がセットされている場合、
failbit
も同様にセットし、さらに、この入力ストリームの例外マスクで failbit に対する例外が有効な場合、 ios_base::failure を投げます。 - 適用可能であれば、 tie() されている出力ストリームをフラッシュします。
- 入力ストリームに eofbit または badbit がセットされている場合、
-
sentry::operator bool()
を呼ぶことによって sentry オブジェクトの状態を確認します。 これは basic_ios::good と同等です。 - sentry が false を返した場合、または sentry のコンストラクタが例外を投げた場合、
- 入力ストリームの抽出された文字数 (gcount) をゼロに設定します。
- 関数が
CharT
の配列に書き込むために呼ばれた場合、その配列の最初の位置にCharT()
(ヌル文字) を書き込みます。
- sentry が true を返した場合、 rdbuf()->sbumpc() または rdbuf()->sgetc() を呼んだかのように入力を行います。
- ストリームの終端に達した (rdbuf()->sbumpc() または rdbuf()->sgetc() が Traits::eof() を返した) 場合、
eofbit
をセットします。 この入力ストリームの例外マスクで eofbit に対する例外が有効な場合、 ios_base::failure を投げます。 - 入力中に例外が投げられた場合、入力ストリームに
badbit
をセットします。 この入力ストリームの例外マスクで badbit に対する例外が有効な場合、その例外が投げ直されます。 - 入力中に例外が投げられなかった場合、入力ストリームの抽出された文字数 (gcount) を設定します。
- ストリームの終端に達した (rdbuf()->sbumpc() または rdbuf()->sgetc() が Traits::eof() を返した) 場合、
- いかなる出来事が発生しても、例外によって終了したか戻ったかにかかわらず、この関数を抜ける前に sentry のデストラクタが呼ばれます。
[編集] 標準ライブラリ
以下の標準ライブラリの関数は UnformattedInputFunction です。
- std::getline (ただし gcount は変更しません)
- basic_istream::operator>>(basic_streambuf*)
- basic_istream::get
- basic_istream::getline
- basic_istream::ignore
- basic_istream::peek
- basic_istream::read
- basic_istream::readsome
- basic_istream::putback (ただし最初に
eofbit
をクリアします) - basic_istream::unget (ただし最初に
eofbit
をクリアします) - basic_istream::sync (ただし gcount は変更しません)
- basic_istream::tellg (ただし gcount は変更しません)
- basic_istream::seekg (ただし最初に
eofbit
をクリアし、 gcount は変更しません) - std::ws (ただし gcount は変更しません)