<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 より大きい場合、N は Istr.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;
}