std::basic_istream<CharT,Traits>::ignore
提供: cppreference.com
< cpp | io | basic istream
basic_istream& ignore(std::streamsize count =1, int_type delim = Traits::eof()); | ||
delim
まで (delim
を含む) 入力ストリームから文字を抽出して破棄します。
ignore
は UnformattedInputFunction として動作します。 sentry オブジェクトの構築および確認の後、以下の条件のいずれかが発生するまで、ストリームから文字を抽出し、それらを破棄します。
count
個の文字が抽出された。count
が std::numeric_limits<std::streamsize>::max() と等しい特別なケースではこの確認は無効化されます。
- 入力シーケンスでファイル終端状況が発生した。 この場合は setstate(eofbit) を呼びます。
- 入力シーケンスの次に利用可能な文字
c
がdelim
である (Traits::eq_int_type(Traits::to_int_type(c), delim) によって判定されます)。 区切り文字は抽出され、破棄されます。delim
が Traits::eof() の場合、この確認は無効化されます。
目次 |
[編集]引数
count | - | 抽出する文字数 |
delim | - | 抽出を停止する区切り文字。 この文字も抽出されます |
[編集]戻り値
*this。
[編集]例外
エラーが発生し (エラー状態フラグが goodbit でなく)、その状態に対して投げるために exceptions() がセットされている場合は failure。
内部の操作が例外を投げた場合、それはキャッチされ、 badbit がセットされます。 exceptions() が badbit
に対してセットされていれば、その例外が投げ直されます。
[編集]例
以下の例は数値でない入力をスキップするために ignore
を使用します。
Run this code
#include <iostream>#include <sstream>#include <limits> int main(){std::istringstream input("1\n""some non-numeric input\n""2\n");for(;;){int n; input >> n; if(input.eof()|| input.bad()){break;}elseif(input.fail()){ input.clear();// unset failbit input.ignore(std::numeric_limits<std::streamsize>::max(), '\n');// skip bad input}else{std::cout<< n <<'\n';}}}
出力:
1 2
[編集]関連項目
文字を抽出します (パブリックメンバ関数) | |
指定された文字が見つかるまで文字を抽出します (パブリックメンバ関数) |