basic_istream::operator>>

调用在输入流的函数或读取输入流中的设置数据格式。

basic_istream& operator>>(
   basic_istream& (*_Pfn)(basic_istream&)
);
basic_istream& operator>>(
   ios_base& (*_Pfn)(ios_base&)
);
basic_istream& operator>>(
   basic_ios<Elem, Tr>& (*_Pfn)(basic_ios<Elem, Tr>&))
;
basic_istream& operator>>(
   basic_streambuf<Elem, Tr> *_Strbuf
);
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>>(
   void *& _Val
);
basic_istream& operator>>(
   float& _Val
);
basic_istream& operator>>(
   double& _Val
);
basic_istream& operator>>(
   long double& _Val
);

参数

  • _Pfn
    函数指针。

  • _Strbuf
    类型 stream_buf对象。

  • _Val
    读取值从流。

返回值

流(*this)。

备注

<istream> 标头还定义几个全局提取运算符。有关更多信息,请参见 operator>> (<istream>)

第一个成员函数可以确保窗体 istr >> ws 调用的表达式 ws-discovery(istr),然后返回 *this。第二个和第三个功能可确保其他操控器,如 十六进制,行为类似。其余的功能组合格式的输入函数。

功能:

basic_istream& operator>>(
    basic_streambuf<Elem, Tr> *_Strbuf);

提取元素,则为; _Strbuf不是null指针和插入记录在 _Strbuf。在文件结尾的提取停止。它还停止,而不提取所涉及的元素,因此,如果插入失败或引发捕获,但的异常(不是重新引发)。如果函数不提取元素,它调用 setstate(failbit)。在任何情况下,该函数返回 *this

功能:

basic_istream& operator>>(bool& _Val);

提取字段并将其转换为布尔值通过调用 use_facet <num_get<ElemInIt> (getloc)。获取(InIt( rdbuf),Init(0),*thisgetloc,_Val)。此处,InIt 定义为 istreambuf_iterator<ElemTr>。函数返回 *this

功能:

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>>(void *& _Val);

每提取字段并将其转换为数值通过调用 use_facet<num_get<ElemInIt> (getloc)。获取(InIt( rdbuf),Init(0),*thisgetloc,_Val)。此处,因为 istreambuf_iterator<ElemTr>和 _Val 具有类型 long*、*unsigned long或 void * 根据需要,InIt 定义。

如果已转换的值不能表示为 _Val的类型,函数调用 setstate(failbit)。在任何情况下,该函数返回 *this

功能:

basic_istream& operator>>(float& _Val);
basic_istream& operator>>(double& _Val);
basic_istream& operator>>(long double& _Val);

每提取字段并将其转换为数值通过调用 use_facet<num_get<ElemInIt> (getloc)。get(InIt( rdbuf),Init(0),*thisgetloc,_Val)。此处,因为 istreambuf_iterator<ElemTr>和 _Val 具有类型 double 或 long double 根据需要,InIt 定义。

如果已转换的值不能表示为 _Val的类型,函数调用 setstate(failbit)。在任一情况下,它将返回 *this

示例

// istream_basic_istream_op_is.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

ios_base& hex2( ios_base& ib ) 
{
   ib.unsetf( ios_base::dec );
   ib.setf( ios_base::hex );
   return ib;
}

basic_istream<char, char_traits<char> >& somefunc(basic_istream<char, char_traits<char> > &i)
{
   if ( i == cin ) 
   {
      cerr << "i is cin" << endl;
   }
   return i;
}

int main( ) 
{
   int i = 0;
   cin >> somefunc;
   cin >> i;
   cout << i << endl;
   cin >> hex2;
   cin >> i;
   cout << i << endl;
}

输入

10
10

示例输出

i is cin
10
10
10
16

要求

标头: <istream>

命名空间: std

请参见

参考

basic_istream Class

operator>> (<istream>)

iostream编程

(mfc)约定