Cpp-standard-library-cpp-basic-iostream-operator

提供:Dev Guides
移動先:案内検索

C ++ basic_iosライブラリ-operator >>

説明

フォーマットされた入力を抽出するために使用されます。

入力ストリームに適用されるこの演算子(>>)は、抽出演算子として知られています-

  • 算術型-ストリームから文字を順番に抽出して解析し、それらを適切な型の値の表現として解釈し、valの値として保存します。 内部的には、関数は最初にセントリーオブジェクトを構築して(noskipwsをfalseに設定して)入力シーケンスにアクセスします。 次に(適切な場合)、num_get :: getを呼び出して(ストリームの選択されたロケールを使用して)抽出操作と解析操作の両方を実行し、それに応じて内部状態フラグを調整します。 最後に、戻る前に監視オブジェクトを破棄します。
  • ストリームバッファ-可能な限り多くの文字をストリームから抽出し、入力シーケンスが使い果たされるか、関数がsbが指すオブジェクト。
  • manipulators -pf(* this)を呼び出します。pfはマニピュレーターです。 マニピュレータは、この演算子で使用するときに呼び出されるように特別に設計された関数です。 この操作は、入力シーケンスには影響せず、文字を抽出しません(マニピュレーター自体がwsのようにしない限り)。

宣言

以下は、std
basic_istream :: operator >>の宣言です。

C 98

arithmetic types (1)
basic_istream& operator>> (bool& val);
basic_istream& operator>> (short& val);
basic_istream& operator>> (unsigned short& val);
basic_istream& operator>> (int& val);
basic_istream& operator>> (unsigned int& val);
basic_istream& operator>> (long& val);
basic_istream& operator>> (unsigned long& val);
basic_istream& operator>> (float& val);
basic_istream& operator>> (double& val);
basic_istream& operator>> (long double& val);
basic_istream& operator>> (void*& val);
stream buffers (2)
basic_istream& operator>> (basic_streambuf<char_type,traits_type>* sb );
manipulators (3)
basic_istream& operator>> (basic_istream& (*pf)(basic_istream&));
basic_istream& operator>> (
  basic_ios<char_type,traits_type>& (*pf)(basic_ios<char_type,traits_type>&));
basic_istream& operator>> (ios_base& (*pf)(ios_base&));

C 11

arithmetic types (1)
basic_istream& operator>> (bool& val);
basic_istream& operator>> (short& val);
basic_istream& operator>> (unsigned short& val);
basic_istream& operator>> (int& val);
basic_istream& operator>> (unsigned int& val);
basic_istream& operator>> (long& val);
basic_istream& operator>> (unsigned long& val);
basic_istream& operator>> (long long& val);
basic_istream& operator>> (unsigned long long& val);
basic_istream& operator>> (float& val);
basic_istream& operator>> (double& val);
basic_istream& operator>> (long double& val);
basic_istream& operator>> (void*& val);
stream buffers (2)
basic_istream& operator>> (basic_streambuf<char_type,traits_type>* sb );
manipulators (3)
basic_istream& operator>> (basic_istream& (*pf)(basic_istream&));
basic_istream& operator>> (
  basic_ios<char_type,traits_type>& (*pf)(basic_ios<char_type,traits_type>&));
basic_istream& operator>> (ios_base& (*pf)(ios_base&));

パラメーター

  • val -抽出された文字が表す値が保存されるオブジェクト。 この引数のタイプは(ストリームのフォーマットフラグとともに)有効な表現を構成するものに影響することに注意してください。
  • sb -文字がコピーされる制御出力シーケンスのbasic_streambufオブジェクトへのポインター。
  • pf -ストリームオブジェクトを受け取って返す関数。

戻り値

basic_istreamオブジェクト(* this)を返します。

例外

基本保証-例外がスローされた場合、オブジェクトは有効な状態です。

データの競合

valまたはsbが指すオブジェクトを変更します。

以下のstd
basic_istream :: operatorの例では>>
#include <iostream>

int main () {
   int n;

   std::cout << "Enter a number: ";
   std::cin >> n;
   std::cout << "You have entered: " << n << '\n';

   std::cout << "Enter a hexadecimal number: ";
   std::cin >> std::hex >> n;
   std::cout << "Its decimal equivalent is: " << n << '\n';

   return 0;
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

Enter a number: 11
You have entered: 11
Enter a hexadecimal number: 5E
Its decimal equivalent is: 94