basic_istream::operator>>返回值为类本身

来源:互联网 发布:知乎 心理咨询 编辑:程序博客网 时间:2024/05/21 11:47

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(istr),然后 *this返回。 第二个和第三个函数来确保其他操控程序,例如hex,类似的行为。 剩余的函数的格式配置输入函数。

函数:

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

_Strbuf提取元素,因此,如果_Strbuf 不是空指针,并且插入它们。在到达文件尾的提取终止。 它还停止,而提取相关的元素粘贴,因此,如果失败或引发捕获,但异常不是异常 ()。 如果函数不提取元素,它调用 setstate(failbit)。 在任何情况下,函数返回*this

函数:

basic_istream& operator>>(bool& _Val);

提取字段并转换为布尔值通过调用 use_facet <num_get<Elem初始>(getloc)。捕获(初始(rdbuf),Init(0),*thisgetloc_Val)。在这里,初始 被定义为ElemTr>。istreambuf_iterator<函数返回 *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<Elem初始>(getloc)。捕获(初始(rdbuf),其中 Init(0),*thisgetloc_Val)。此处,istreambuf_iterator<,因为ElemTr>和_Val 具有类型 longunsigned longvoid*。需要,定义了 初始

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

函数:

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

提取每个字段并将其转换为数值时通过调用 use_facet<num_get<Elem初始>(getloc)。get(初始( rdbuf),其中 Init(0),*thisgetloc_Val)。此处,istreambuf_iterator<,因为ElemTr>和_Val 都具有 long doubledouble 类型根据需要,定义了 初始

如果转换的值不能表示为 _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;}

输入

1010

示例输出

i is cin10101016

要求

页眉: <istream>

命名空间: std

请参见

参考

basic_istream 类
operator>> (<istream>)
iostream 编程
iostreams 约定
0 0
原创粉丝点击