<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 大于零,则 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;
}

另请参阅

<istream>