您的位置:首页 > 运维架构

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

2015-06-16 15:14 281 查看

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 具有类型 long、unsigned long或
void*。需要,定义了 初始

如果转换的值不能表示为 _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 double 或
double 类型根据需要,定义了 初始

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



要求

页眉: <istream>

命名空间: std


请参见

参考

basic_istream 类

operator>> (<istream>)

iostream 编程

iostreams 约定
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: