次の方法で共有


<istream> 演算子

operator>>

ストリームから文字と文字列を抽出します。

template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
    basic_istream<Elem, Tr>& Istr,
    Elem* str);

template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
    basic_istream<Elem, Tr>& Istr,
    Elem& Ch);

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr,
    signed char* str);

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr,
    signed char& Ch);

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr,
    unsigned char* str);

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr,
    unsigned char& Ch);

template <class Elem, class Tr, class Type>
basic_istream<Elem, Tr>& operator>>(
    basic_istream<char, Tr>&& Istr,
    Type& val);

パラメーター

Ch
単一の文字。

Istr
ストリーム。

str
文字列。

val
型。

戻り値

ストリーム

解説

basic_istream クラスもいくつかの抽出演算子を定義します。 詳細については、「basic_istream::operator>>」を参照してください。

下記の関数テンプレートは

template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
    basic_istream<Elem, Tr>& Istr, Elem* str);

最大で N - 1 の要素を抽出し、str から始まる配列にこれらを格納します。 Istr.width が 0 より大きい場合、NIstr.width です。そうでない場合は、宣言できる Elem の最大の配列のサイズになります。 この関数は常に、格納する抽出された要素の後に値 Elem() を格納します。 抽出は、ファイルの終わり、値 Elem(0) を持つ文字 (抽出されない)、または ws によって破棄される任意の要素 (抽出されない) で早期に停止します。 この関数は要素を抽出しない場合、Istr.setstate(failbit) を呼び出します。 いずれの場合も、Istr.width(0) を呼び出し、Istr を返します。

セキュリティに関するメモ 入力ストリームから抽出された、null で終わる文字列が、コピー先バッファー str のサイズを超えないようにする必要があります。 詳しくは、「 バッファー オーバーランの回避」をご覧ください。

下記の関数テンプレートは

template <class Elem, class Tr>
basic_istream<Elem, Tr>& operator>>(
    basic_istream<Elem, Tr>& Istr, Elem& Ch);

可能な場合は要素を抽出し、この要素を Ch に格納します。 そうでない場合は、is.setstate(failbit) を呼び出します。 いずれの場合も、Istr を返します。

下記の関数テンプレートは

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr, signed char* str);

Istr >> ( char * ) str が返されます。

下記の関数テンプレートは

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr, signed char& Ch);

Istr >> ( char& ) Ch が返されます。

下記の関数テンプレートは

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr, unsigned char* str);

Istr >> ( char * ) str が返されます。

下記の関数テンプレートは

template <class Tr>
basic_istream<char, Tr>& operator>>(
    basic_istream<char, Tr>& Istr, unsigned char& Ch);

Istr >> ( char& ) Ch が返されます。

下記の関数テンプレートは

template <class Elem, class Tr, class Type>
basic_istream<Elem, Tr>& operator>>(
    basic_istream<char, Tr>&& Istr,
    Type& val);

Istr >> val を返します (さらに Istr への右辺値参照をそのプロセス内の左辺値に変換します)。

// istream_op_extract.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

int main( )
{
   ws( cin );
   char c[10];

   cin.width( 9 );
   cin >> c;
   cout << c << endl;
}

関連項目

<istream>